如何使用ng-class调用控制器函数

时间:2015-06-08 02:54:00

标签: javascript angularjs

我有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.

2 个答案:

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