<tr ng-repeat="materialOffer in Vm.materialoffers track by materialOffer.id"
ng-if="!materialOffer.containMaterial && $index >= startIndex && $index < endIndex">
</tr>
我有一个名为materialoffers
的对象数组。数组的每个元素都是一个具有名为containMaterial
的属性的对象。某些对象具有此属性null
,而其他对象将其作为对象。我想只显示那些在containMaterial
属性中有对象的对象。我还使用$index
,startIndex
和endIndex
进行分页。我遇到的问题是$index
正在跟踪那些具有containMaterial
属性null
的对象,例如数组就像这样
[{
"object1": {
containMaterial:obejct;
}
}, {
"object2": {
containMaterial:obejct;
}
}, {
"object3": {
containMaterial:Null;
}
}, {
"object4": {
containMaterial:obejct;
}
}]
当遍历object4时,$index
将是3,而它应该是2,因为对象已被ng-if
隐藏。
答案 0 :(得分:1)
为什么不预先过滤?
在您的HTML中:
<tr ng-repeat="materialOffer in Vm.filteredMaterialOffers() track by materialOffer.id"
ng-if="$index >= startIndex && $index < endIndex">
</tr>
在你的JS中:
$scope.Vm.filteredMaterialOffers = function () {
Vm.materialoffers.filter(function (x) {
return x.containMaterial ;
});
};