Angularjs ng-class 使用对象注释样式时不更新
Angularjs ng-class not updating when using object annotation style
我刚刚注意到在 ng-class 中使用对象时,某些东西在 Angular 中不起作用(或者它不像我预期的那样起作用)。
我期待什么?
更改对象中 属性 的名称时,class 应相应更新。
我尝试了什么?
我发现当我使用像
ng-class="{obj.prop: testExpression}"
和 obj.prop
更改(表达式保持返回 TRUE)ng-class 中的值更改但 class 属性中的值不变。
区别在于这个[不工作]:
<tr ng-repeat="user in users" ng-class="{ {{user.genre}}: true}">
和这个[工作]:
<tr ng-repeat="user in users" ng-class="user.genre">
在这里看到一个plunkr:
http://plnkr.co/edit/149ba2WQ5RK5XqLmWQWK?p=preview
问题是我需要使用对象注释来禁用 class。
是我做错了什么还是我误解了Angular?
还是第三种解决方案?
简而言之,{ {{user.genre}}: true}
不是正确的angularjsexpression
对于您的解决方案,请尝试 ng-class="getClass(user.genre)"
并在 getClass 函数中做任何你想做的事
您正在尝试在此处评估一个对象,因此对于每个具有真实(真实)值的对象键值对,相应的键用作 class 名称。如果你只有一个参数,你必须像这样使用:
<tr ng-repeat="user in users" ng-class="user.genre: true">
如果有多个参数,你必须像这样使用:
<p ng-class="{strike: deleted, bold: important, red: error}">
我刚刚注意到在 ng-class 中使用对象时,某些东西在 Angular 中不起作用(或者它不像我预期的那样起作用)。
我期待什么?
更改对象中 属性 的名称时,class 应相应更新。
我尝试了什么?
我发现当我使用像
ng-class="{obj.prop: testExpression}"
和 obj.prop
更改(表达式保持返回 TRUE)ng-class 中的值更改但 class 属性中的值不变。
区别在于这个[不工作]:
<tr ng-repeat="user in users" ng-class="{ {{user.genre}}: true}">
和这个[工作]:
<tr ng-repeat="user in users" ng-class="user.genre">
在这里看到一个plunkr:
http://plnkr.co/edit/149ba2WQ5RK5XqLmWQWK?p=preview
问题是我需要使用对象注释来禁用 class。
是我做错了什么还是我误解了Angular?
还是第三种解决方案?
简而言之,{ {{user.genre}}: true}
不是正确的angularjsexpression
对于您的解决方案,请尝试 ng-class="getClass(user.genre)"
并在 getClass 函数中做任何你想做的事
您正在尝试在此处评估一个对象,因此对于每个具有真实(真实)值的对象键值对,相应的键用作 class 名称。如果你只有一个参数,你必须像这样使用:
<tr ng-repeat="user in users" ng-class="user.genre: true">
如果有多个参数,你必须像这样使用:
<p ng-class="{strike: deleted, bold: important, red: error}">