<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
隐藏。 最佳答案
为什么不只是预先过滤?
在您的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 ;
});
};
关于javascript - $ index是被ng-if隐藏的跟踪元素,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41649734/