给定嵌套数组,如何在ng-repeat中过滤这些值,而不必使用ng-if。
不使用ng-if的原因是我需要零值来不占用$ index,因为我需要将该索引与此视图中发生的其他内容匹配。所以例如这对我来说不起作用:
<tr ng-if="row.value[0] !== 0 || row.value[1] !== 0" ng-repeat="row in chart.values track by $index">
在下图中,例如,如果值[0]或值[1]在亚洲/印度下为零,那么它们不应出现在ng-repeat中。数据如下:
答案 0 :(得分:1)
您可以使用ng-show
并在方法中进行评估;这将保留$index
&#39; es:
$scope.showRow = function(row) {
return row.value[0] !== 0 || row.value[1]!== 0
}
<tr ng-repeat="row in chart.values track by $index" ng-show="showRow(row)">
<强>更新即可。如果您不想保留$index
,则可以将上述showRow
修改为:
$scope.showRow = function(row) {
return !(row.value[0] == 0 || row.value[1] == 0)
}
然后将其用作filter
代替:
<tr ng-repeat="row in chart.values | filter:showRow track by $index">
由此跟踪的$index
&#39; es将为0,1,2,3,4 ...等,无论滤出的是什么。
答案 1 :(得分:0)
快速建议:在您生成阵列的地方执行业务逻辑,而不是在ng-repeat中执行
类似于此处,但不是更改数据源,而是进行比较:angular.js ng-repeat - check if conditional is true then use another collection