所以我有3个html页面(有3个不同的角度控制器),每个页面都显示一个包含行的表,并且在每个页面上的行应该显示为红色或绿色(根据errorstate):
setRowColor
现在拥有3个ng-class
方法(每个控制器中有一个)是没有意义的,但我也无法创建工厂服务,因为我无法在{{{{{{ 1}}。
所以我的想法是创建一个普通的JS函数,只使用class
而不是ng-class
,但这似乎与ng-repeat
一起使用。
这是方法:
function setRowColor(col) {
return {passed: col == '0', failed: col != '0'};
};
虽然我的样式表中有.passed
和.failed
类。
有没有办法让class
工作?或者有更好的方法来解决我的问题吗?
答案 0 :(得分:0)
应在控制器的setRowColor
中定义函数$scope
。
$scope.setRowColor = function() {
...
};
要仅保留此功能的一个定义,您应创建一个AppController
,该body
将设置在<body ng-controller="AppController">
...
标记上:
AppController
在$scope.country = [];
for (var o in countryList) {
if(o != 0){
$scope.country.push(countryList[o]);
}
}
中定义上述功能,您的问题应该修复。
答案 1 :(得分:0)
如何在ng-class中使用三元组呢?
<tr ng-class="case.errorStateId===0 ? 'passed' : 'failed'"
ng-repeat-start="case in entries | filter:searchCase | orderBy:'-id' track by case.id">
<td>{{case.name}}</td>
........
</tr>