1

在中,动态ng-repeat的迭代器偏移量$index是可见的吗?$index应用过滤器时,我得到的值似乎不正确。

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

似乎不适用于应用过滤器(注意控制台日志):

移除过滤器时:

最后是我的ng-click电话:

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

点击处理程序:

$scope.showHideOrderDropDown = function(index) {
    console.log(index);
    $scope.data[index].orderDropDown = !$scope.data[index].orderDropDown;
};

现在我可以轻松解决这个问题,但我只是希望得到一些澄清。

4

1 回答 1

3

在做了一些研究之后,似乎应用过滤器实际上添加和删除(而不是隐藏)元素,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;
        }
    }
};
于 2013-08-09T17:00:34.220 回答