Angularjs 在ng repeat中,$index的迭代器偏移量是否对筛选器的结果是动态的

Angularjs 在ng repeat中,$index的迭代器偏移量是否对筛选器的结果是动态的,angularjs,angularjs-ng-repeat,Angularjs,Angularjs Ng Repeat,在ng repeat中,$index的迭代器偏移量是否是动态的?当应用过滤器时,我得到的$index值似乎不正确 在未应用过滤器的情况下工作: 在应用过滤器的情况下不工作(注意控制台日志): 移除过滤器时: 最后,我的ng点击呼叫: <a ng-click="showHideOrderDropDown($index)" href=""> Show More<br/><i class="icon-arrow-down"></i> &l

ng repeat
中,
$index
的迭代器偏移量是否是动态的?当应用过滤器时,我得到的
$index
值似乎不正确

在未应用过滤器的情况下工作:

在应用过滤器的情况下不工作(注意控制台日志):

移除过滤器时:

最后,我的
ng点击
呼叫:

<a ng-click="showHideOrderDropDown($index)" href="">
    Show More<br/><i class="icon-arrow-down"></i>
</a>

现在我可以很容易地解决这个问题,但我只是希望得到一些澄清

在做了一些研究之后,似乎应用过滤器实际上是在
ng repeat
中添加和删除(而不是隐藏)元素,因此
$index
将应用于数组的新顺序,不再反映
$scope
数组对象

自从问了这个问题之后,我继续把数据库id传递给了控制器

$scope.showHideOrderDropDown = function(id) {
    for (var i = 0; i < $scope.data.length; i++) {
        if ($scope.data[i].id === id) {
            $scope.data[i].orderDropDown = !$scope.data[i].orderDropDown;
        }
    }
};
$scope.showHideOrderDropDown=函数(id){
对于(变量i=0;i<$scope.data.length;i++){
if($scope.data[i].id==id){
$scope.data[i].orderDropDown=!$scope.data[i].orderDropDown;
}
}
};