Angularjs的ng类表达式语法

Angularjs ng-class expression syntax

本文关键字:表达式 语法 ng Angularjs      更新时间:2023-09-26

我需要使用以下ng-class -表达式的正确语法的一些帮助,值来自重复搜索结果。每个值都可以自己解析,但ng-class总是解析为'tdgreen'

<td ng-class="{{searchResult|sumOfValue:'LastCount'}} < {{searchResult|sumOfValue:'Average'}} ? 'tdred' : 'tdgreen'">

这里的问题是ng-class并不意味着与插值工作。这对angular来说是一个很好的教训——永远不要把求值指令和插值混合在一起。你这样做的方式,你可以只使用普通的class属性与插值,它将立即工作。

然而,如果你仍然想使用ng-class,你可以在你的控制器中编写一个包装器函数$scope.sumOfValueAGreaterB(obj,a,b),它进行比较,并使用json风格的ng-class特性来定义你的条件类,如:

<td ng-class="{tdred : sumOfValueAGreaterB(searchResult, 'Average', 'LastCount'),
tdgreen : sumOfValueAGreaterB(searchResult, 'LastCount', 'Average')}">

另一种方法是在你的控制器中预先计算传递给ng类的对象,但我认为它不适合你的情况,因为我假设你在ng-repeat中这样做。

参见ngClass和$filter -service文档,特别是$filter -service示例plunker。