我有3种可能的数据类型(' a',' b'和' c')我有3个不同的类别。问题是我的控制器功能永远不会被调用。
我的CSS
.a{
color: red
}
.b{
color: blue
}
.c{
color: green
}
我的功能
this.getClass = function(num){
console.log("here");
var returnVal = '';
if (num <= 1){
returnVal = 'a'
}
else if (num > 1 && num < 10)
{ returnVal = 'b'
}
else{
returnVal = 'c'
}
return returnVal;
};
我的HTML 已更新!
<tr id="num{{$index}}"
ng-click="$map[$index] = ! $map[$index]"
ng-repeat-start="num in currentController.nums"
ng-class="currentController.getClass($num)">
<td>num</td>
</tr>
根据列出的ngClass文档https://docs.angularjs.org/api/ng/directive/ngClass
If the expression evaluates to a string, the string should be one or more space-delimited class names.
答案 0 :(得分:1)
那里有一个无效的表达式,因为你的方法返回类名的字符串(假设你正确地使用 controller作为语法而别名是currentController
),只需执行:
ng-class="currentController.getClass(num)">
示例:
<div ng-controller="MyController as currentController">
//....
<div ng-class="currentController.getClass(num)">Hello</div>
//...
</div>
答案 1 :(得分:0)
尝试:<span ng-class="getClass(num)">Foo</span>
<强> Demo 强>