带有函数和表达式的ng-class

Viv*_*day 11 angularjs ng-class

我需要使用ng-class添加两个类,我需要通过一个函数获取另一个类,我需要通过一个表达式来获取 - 下面是我正在使用的代码,但是获得了一些语法错误 -

 <div class="field-icon" ng-class="getFieldClass(entry.entry_type_id) , 'used':  entry_map[entry.guid] > 0" ></div>
Run Code Online (Sandbox Code Playgroud)

如果可以一起使用函数和表达式,那么正确的语法是什么.

Pan*_*kar 11

你有错误的ng-class语法,它应该是JSON格式的ng-class="{'used': expression2 }",表达式将返回Boolean基于该类将被添加或从类attribute值中删除.

当你的getFieldClass方法返回类名时,你可以在getFieldClass方法中移动你的两个类逻辑

标记

<div class="field-icon" 
ng-class="getFieldClass(entry)" ></div>
Run Code Online (Sandbox Code Playgroud)

$scope.getFieldClass = function(entry){
   //use entry.entry_type_id here to decide class which is first
   //'text-box-icon' class has been selected on some condition based on entry.entry_type_id
   return {"text-box-icon": true, 'used': $scope.entry_map[entry.guid] > 0};
}
Run Code Online (Sandbox Code Playgroud)


raj*_*alx 7

您可以在数组中编写函数和表达式.

例:

 <div class="field-icon" ng-class="[getFieldClass(entry.entry_type_id), {'used':entry_map[entry.guid] > 0}]"></div>
Run Code Online (Sandbox Code Playgroud)

这里的实例:https://plnkr.co/edit/OWfkAwJiombrehiS7p9o?p = preview