ng-repeat不比较ng-if

时间:2016-08-29 17:50:43

标签: angularjs angularjs-ng-repeat angular-ng-if

我有一个元素数组,$ scope.hides = [3,5]我正在使用ng-repeat和ng-if将这些值与表中的值进行比较。

如果数组和表中的值匹配,则应隐藏表中的该行,

enter image description here

数组元素为-3,5,表值位于||之后。      [3,5](数组值)|| 1(表值)。

由于有2个元素,ng-repeat迭代2次并在每次迭代中删除一个元素。我想在单次迭代中删除所有匹配的元素

这是我的代码,

ng-repeat="x in hides track by $index"  ng-if="x != (values populated from controllers)"

任何人都可以帮助删除单次迭代中的所有匹配元素而不是2次迭代......

1 个答案:

答案 0 :(得分:0)

由于(values populated from controllers)是一个数组且x是一个整数,因此您需要检查 x <中是否存在(values populated from controllers) / p>

平面原始数组的最简单方法是:

ng-if="(values populated from controllers).indexOf(x) == -1"

如果您需要更高级的查找以查看数组中是否存在x,您可以考虑放弃ng-if并使用类似:ng-repeat="x in hides track by $index | filter:isInArray的内容,其中$scope.isInArray是一个自定义谓词函数,按照filter docs