如何同时使用ng-value和ng-class而不重复?

时间:2017-02-02 11:35:33

标签: angularjs performance ng-repeat ng-class angularjs-ng-value

我有一个输入,它使用带有过滤器的ng-value来显示数字。

<input ng-value="myDataCollection | customFilter">

如果是否定的话,我还想应用ng-class将文字颜色更改为红色。

<input ng-value="myDataCollection | customFilter" ng-class="{'negative-input': (myDataCollection | customFilter) < 0}">

这样可行,但在我的用例中,过滤器有很多工作要做,以计算结果值。输入也是一个大的嵌套ng-repeat,所以性能是一个问题。

是否可以根据ng-class设置的输入结果值使用ng-value,而不必两次运行过滤器?

2 个答案:

答案 0 :(得分:0)

这就是我的建议。您可以直接过滤值并将其保存在某个模型变量中。所以,就像你将运行过滤一次数据集,然后在任何你想要的地方使用它。

$scope.filteredData = yourFilterFunction(yourDataCollection);//this will be filtered data values

 <input ng-value="filteredData" ng-class="{ filteredData < 0 ? 'negative-input': ''}">

答案 1 :(得分:-1)

如果我没有误解逻辑,你可以使用ng-model代替ng-value

这里有一点plunker给你。