排序 – Angularjs错误$index后orderBy

前端之家收集整理的这篇文章主要介绍了排序 – Angularjs错误$index后orderBy前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我是新的Angular.js和有一些问题排序我的数组和工作排序数据。

我有一个列表的项目,想要这样排序它的“Store.storeName”,这是工作到目前为止。但在排序数据后,我的删除功能不再工作了。我认为这是因为$索引排序后错误,所以错误的数据被删除

我该如何解决?将数据排序在作用域而不是视图中?怎么做?

这里是一些相关的代码

在视图:

<tr ng-repeat="item in items | orderBy:'Store.storeName'">
                <td><input class="toggle" type="checkBox" ng-model="item.Completed"></td>
                <td>{{item.Name}}</td>
                <td>{{item.Quantity}} Stk.</td>
                <td>{{item.Price || 0 | number:2}} €</td>                
                <td>{{item.Quantity*item.Price|| 0 | number:2}} €</td>
                <td>{{item.Store.storeName}}</td> 
                <td><a><img src="img/delete.png" ng-click="removeItem($index)">{{$index}}</a></td>
            </tr>

在我的控制器我有这个删除功能,这应该删除特定的数据:

$scope.removeItem = function(index){
        $scope.items.splice(index,1);
    }

这在视图中排序之前很好地工作。
如果缺少重要的事情,请让我现在。

谢谢!

取而代之或在$ index上继承 – 你已经注意到了 – 将指向一个排序/过滤的数组中的索引,你可以将该项本身传递给你的removeItem函数
<a><img src="img/delete.png" ng-click="removeItem(item)">{{$index}}</a>

修改removeItem函数以使用数组的indexOf方法来查找索引,如下所示:

$scope.removeItem = function(item){
   $scope.items.splice($scope.items.indexOf(item),1);
}

猜你在找的Angularjs相关文章