我刚接触Angular.js,遇到了一些关于数组排序和操作排序后数据的问题。
我有一个项目列表,想通过“Store.storeName”进行排序,目前已经能够实现。但是在排序数据之后,我的删除函数不再起作用了。我认为这是由于排序后$index不正确,因此删除了错误的数据。
我该如何解决这个问题?在作用域中对数据进行排序而不是在视图中进行排序?怎么做?
以下是一些相关代码:
视图中的代码:
<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);
}
在 View 中排序之前,这很好用。如果有重要的内容遗漏,请告诉我。
谢谢!