我创建了一个angular component
被调用的app-button
.
template
看起来像这样:
<div class="app-button">
<button class="app-button__btn">{{text}}</button>
</div>
在控制器中,我定义了两个名为and的@Input
变量:modifier
text
export class CanButtonComponent implements OnInit {
@Input() modifier: string;
@Input() text: string = "Default button";
...
}
在template
第二次component
调用sample-page
中,我正在重用我component
app-button
这样的:
<app-button></app-button>
目前,我得到了一个HTML
button
我的默认值text
Default button
,所以它工作正常。
现在我正在尝试使用我的两个@Input
变量modifier
和text
.
首先,如果我传递一个值,我会添加第二个类modifier
:
<app-button [modifier]="test"></app-button>
我尝试了两种方式:
1.)class
直接在条件template
中添加第二个:app-button
ngClass
<div class="app-button" [ngClass]="{'app-button--{{modifier}}' modifier != ''}">...</div>
2.)在调用中class
直接添加第二个:template
app-button
ngClass
function
controller
模板:
<div class="app-button" [ngClass]="getModifier()">...</div>
控制器:
getModifier() {
if (this.modifier) {
return `app-button--${this.modifier}`;
}
}
这两个想法都不能通过class
使用value
传递的modifier
string
.
文本的第二个问题
button
text
我也有一个问题是通过传递一个值来覆盖默认值@Input text
:
<app-button [text]="This is a new text">...</app-button>
我有关注console
error
:
Uncaught Error: Template parse errors:
Parser Error: Unexpected token 'is' at column 6 in [this is a new text]
希望我的两个问题很清楚。