首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ng-class多条件

ng-class多条件
EN

Stack Overflow用户
提问于 2017-04-25 13:38:13
回答 5查看 705关注 0票数 0

我想将多个条件应用到ng-class中,因此'u.Credit‘的上限将设为10000。下面是我的代码:

代码语言:javascript
复制
<tr ng-repeat="u in user.tables.tbl1" ng-init="u.DateAdded = JSONtoDATE(u.DateAdded)" ng-class='{lastRow : $last}' ng-model="myIndex = $index">
  <td>{{u.ID}}</td>
  <td>{{u.Name}}</td>
  <td>{{u.Email}}</td>
  <td>{{u.DateAdded}}</td>
  <td ng-class='{selectedRow : u.Credit >= creditValue}'>{{u.Credit}}</td>
</tr>

..。我试过这样的方法,但不起作用:

代码语言:javascript
复制
<td ng-class='{selectedRow : ((u.Credit >= creditValue) && (u.Credit < 10000))}'>{{u.Credit}}</td>
EN

回答 5

Stack Overflow用户

发布于 2017-04-25 13:50:53

您可以将其替换为控制器上的函数调用:

代码语言:javascript
复制
<td ng-class='getClassForCurrentRow(u)'>{{u.Credit}}</td>

我不确定creditValue是什么,从哪里填充的,如果它来自控制器,那么你就不需要新的参数,如果不是,就把它添加到getClassForCurrentRow(u, creditValue)函数中。

并在您的控制器中定义类:

代码语言:javascript
复制
{...}
$scope.getClassForCurrentRow = function(record) {
   if (record.Credit >= $scope.creditValue) {
      return "selectedRow";
   }
   return "";
}

要注意让这个函数尽可能简单,因为Angular会在每个周期中运行它,以确定是否有什么变化。

票数 0
EN

Stack Overflow用户

发布于 2017-04-25 14:01:07

代码语言:javascript
复制
<a href="" ng-click="addFavorite(myfav.id);favorite=!favorite">
 <i class="fa orange" ng-class="{'fa-star': favorite || fav==myfav.id, 'fa-star-o': !favorite}"></i>
票数 0
EN

Stack Overflow用户

发布于 2017-04-25 14:22:10

我很抱歉,我在测试代码中犯了一点错误(我是JS初学者),这对期望的功能产生了负面影响,在更正之后,我不得不说我声称的“不起作用”的表达式实际上是有效的:

代码语言:javascript
复制
selectedRow : (u.Credit >= creditValue && u.Credit < 10000)

但是,你的答案对我来说是非常有价值的,因为我是学习者。谢谢。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43602446

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档