ng-class三元运算符与评估表达式之间的区别

时间:2016-07-21 07:58:45

标签: javascript angularjs

我有表情 ng-class="myVal > 0 ? 'myClass' : 'none'",其中myVal在控制器中的某个ajax请求后获取值。

问题是,有时myVal在控制器中获得新值,但上面的类在视图中没有更新。

但是,像ng-class="{'myClass' : myVal > 0}"这样的表达式每次都会给出正确的结果。

两者有什么区别?或者我应该以不同的方式使用ngClass

1 个答案:

答案 0 :(得分:0)

ngClass指令接受表达式为string,object和array。 Check the documentation about ngClass

控制器:

// string
$scope.myClassString = 'my-style';

// object
$scope.myClassObject = {
    'my-style-a': true, // true expression 
    'my-style-b': 2 > 1, // true expression 
    'my-style-c': false // false expression style not applied
};

// array with mixed values
$scope.myClassArray = [
    'my-style-d',
    {
        'my-style-e': true, // true expression 
        'my-style-f': false // false expression style not applied
    }
];

查看:

<div ng-class="myClassString"> 

</div>

<div ng-class="myClassObject"> 

</div>

<div ng-class="myClassArray"> 

</div>

OR

<div ng-class="'my-style'""> 

</div>

<div ng-class="{'my-style-a': true, 'my-style-b': 2 > 1, 'my-style-c': false}"> 

</div>

<div ng-class="['my-style-d', {'my-style-e': true, 'my-style-f': false }]"> 

</div>