使用对象数组时,AngularJS ng-class添加[object Object]类

20 浏览
0 Comments

使用对象数组时,AngularJS ng-class添加[object Object]类

这个问题已经有了答案:

使用ng-class添加多个类

我试图把下拉列表项的所有样式合并到单个ng-class中,从而减少监视器的数量,特别是这样...

ng-class="[button.icon, {'disabled': button.disableCallback(), 'hidden':button.hiddenCallback()}]

如果下拉列表项有图标,它会给它添加一个按钮样式,同时如果它们适用,则定义禁用和隐藏样式。其中按钮图标可以是任何字符串,如“add-icon”“remove-icon”等。其它两个样式只是在回调为true时添加禁用或隐藏的CSS类。

但是,这样做,我看到类只被定义为object,如下所示...

class="[object Object]"

我认为它只是把第二个object{\'disabled\': button.disableCallback(),\'hidden\':button.hiddenCallback()}作为样式添加,因为它是已经定义的,认为它是一个字符串?

有更好的方法吗?在ng-class中设置一个动态类(button.icon),并基于回调添加这些条件类({\'disabled\': button.disableCallback(),\'hidden\':button.hiddenCallback()})?

admin 更改状态以发布 2023年5月21日
0
0 Comments

只使用三元运算符处理字符串可以解决我遇到的问题,不要混合使用对象和字符串。

ng-class="[button.icon, button.disableCallback() ? 'disabled' : '', button.hiddenCallback() ? 'hidden' : '']"

我认为这与ngClass页面上“已知问题”中的错误有关。

https://docs.angularjs.org/api/ng/directive/ngClass

0