最佳答案
我刚接触 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>
在我的控制器中有一个 delete 函数,它可以删除特定的数据:
$scope.removeItem = function(index){
$scope.items.splice(index,1);
}
在视图中排序之前,这样做效果很好。 如果有什么重要的东西不见了,请现在告诉我。
谢谢!