无法分配btn成功

时间:2019-10-08 13:35:53

标签: angular typescript

我正在尝试学习角度语言,我想在函数调用时启用按钮, 所以我将这部分绑定在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

出现相同的错误...

我真的不知道为什么。

2 个答案:

答案 0 :(得分:0)

这是因为NgClass属性仅接受: string-添加字符串中列出的CSS类(以空格分隔), Array-添加了声明为Array元素的CSS类, 对象-键是CSS类,在值中给出的表达式计算为真实值时会添加,否则将被删除。

但不是函数,您将需要分别评估该函数,可以在OnChanges()的DoCheck()上进行此操作

我将有关它的文档粘贴给您:

https://angular.io/api/common/NgClass

答案 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>