我正在尝试学习角度语言,我想在函数调用时启用按钮, 所以我将这部分绑定在html中:
<button [disabled]="!enableAdd" class="btn btn-block mb-3"
[ngClass]="currentClasses">Add new user</button>
并在函数中使用了
SetCurrentClasses () {
this.currentClasses = {
'btn-success': this.enableAdd
}
编译此错误时如何弹出
类型'{'btn-success':boolean; }”不可分配给“ any []”类型。 对象文字只能指定已知的属性,而“ btn-success”在“ any []”类型中不存在。
非常奇怪的是,即使我尝试启用enableAdded也是bool类型
'btn-success': true
出现相同的错误...
我真的不知道为什么。
答案 0 :(得分:0)
这是因为NgClass属性仅接受: string-添加字符串中列出的CSS类(以空格分隔), Array-添加了声明为Array元素的CSS类, 对象-键是CSS类,在值中给出的表达式计算为真实值时会添加,否则将被删除。
但不是函数,您将需要分别评估该函数,可以在OnChanges()的DoCheck()上进行此操作
我将有关它的文档粘贴给您:
答案 1 :(得分:0)
将currentClasses
传递给[ngClass]
时,实际上是将对象传递给[ngClass]
,这是不允许的。就像class
中的<button>
属性一样,您不会将其声明为'class =“ {btn-success:true}”`。这就是为什么它不起作用。
您可以使用[class.disabled]
来利用引导程序的.disabled类来禁用按钮,而不是使用angular的[disabled]属性。
例如
<button [class.disabled]="!enableAdd" class="btn mb btn-success">
Add new user
</button>