Javascript 使用ng重复隐藏ng时的angularjs$索引

Javascript 使用ng重复隐藏ng时的angularjs$索引,javascript,angularjs,Javascript,Angularjs,我有需要显示序列号的itemlist。我使用了$index和ng repeat,但当元素隐藏时,索引增加了 我试过的代码如下: <div ng-repeat="itemRow in salesitem" class="tableRow h7" ng-hide="itemRow.flagDeleted"> <div class="tableCell">{{$index}}</div>

我有需要显示序列号的itemlist。我使用了$index和ng repeat,但当元素隐藏时,索引增加了

我试过的代码如下:

<div ng-repeat="itemRow in salesitem" class="tableRow h7" ng-hide="itemRow.flagDeleted">
                    <div class="tableCell">{{$index}}</div>
                    <div class="tableCell">{{itemRow.name}}</div>
                    <div class="tableCell">{{itemRow.qty}}</div>
</div>

{{$index}}
{{itemrrow.name}
{{itemrrow.qty}

当itemRow.flagDeleted为True时,该项目将不显示,但索引将增加,因此下一个项目序列号出错

相反,在重复上使用过滤器:

<div ng-repeat="itemRow in salesitem | filter:{ 'flagDeleted' : false}" class="tableRow h7">
    <div class="tableCell">{{$index}}</div>
    <div class="tableCell">{{itemRow.name}}</div>
    <div class="tableCell">{{itemRow.qty}}</div>
</div>

{{$index}}
{{itemrrow.name}
{{itemrrow.qty}

在传递到ng repeat之前过滤项目,如
ng repeat=“itemRow in salesitem | filter:'flagDeleted':true“
仅当对象明确设置了
flagDeleted:false
时,它才会起作用。如果它们只有
flagdelected:true
,则它将不起作用(如果
flagdelected
未定义的
)。最好实现自定义筛选功能。@dfsq您能详细解释一下吗?我不太明白你在说什么。当我将all设置为true时,没有任何项目显示正确的行为,因为op希望隐藏所有带有flagDeleted的项目为true。不能有
flagDeleted:false
flagDeleted:true
。在这种情况下,
flagDeleted:false
将与它们不匹配。我明白你的意思。我认为将标志设置为true或false是正常的,而不是将属性完全丢失或设置为true或false之外的其他值