在AngularJS中,我使用ng-class的方式如下:
<div class="bigIcon" data-ng-click="PickUp()"
ng-class="{first:'classA', second:'classB', third:'classC', fourth:'classC'}[call.State]"/>
我想知道我是否可以使用if-else表达式来做类似的事情:
<div class="bigIcon" data-ng-click="PickUp()"
ng-class="{first:'classA', second:'classB', else:'classC'}[call.State]"/>
所以无论何时调用。状态不同于第一次或第二次使用classC和避免指定每个值?
我的一个变通方法是操纵一个模型变量,只是为了ng类切换:
例如,我想根据列表的状态切换类:
1)每当我的列表为空时,我更新我的模型:
$scope.extract = function(removeItemId) {
$scope.list= jQuery.grep($scope.list, function(item){return item.id != removeItemId});
if (!$scope.list.length) {
$scope.liststate = "empty";
}
}
2)当我的列表不空时,我设置另一个状态
$scope.extract = function(item) {
$scope.list.push(item);
$scope.liststate = "notempty";
}
3)当我的列表从未被触及时,我想给另一个类(这是页面初始化的地方):
$scope.liststate = "init";
3)我在ng课上使用了这个额外的模型:
ng-class="{'bg-empty': liststate == 'empty', 'bg-notempty': liststate == 'notempty', 'bg-init': liststate = 'init'}"