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

时间:2015-05-29 13:26:31

标签: angularjs ng-class

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

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

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

3 个答案:

答案 0 :(得分:8)

你的语法错误ng-class,它应该是JSON格式,如ng-class="{'used': expression2 }",表达式将返回Boolean,因为该类将被添加到类{{1}中价值。

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

<强>标记

getFieldClass

<强>代码

<div class="field-icon" 
ng-class="getFieldClass(entry)" ></div>

答案 1 :(得分:6)

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

示例:

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

此处的实例:https://plnkr.co/edit/OWfkAwJiombrehiS7p9o?p=preview

答案 2 :(得分:-1)

你应该可以这样做:

<div class="field-icon" ng-class="getClasses(entry)"></div>

您的方法如下:

$scope.getClasses = function(entry) {
   var classes = {};
   if (entry_map[entry.guid] > 0)
      classes['used'] = true;

   if (various-logic)
     classes['custom-class-one'] = true;
   else if (various-logic)
     classes['custom-class-two'] = true;
   //etc

   return classes;
}