我是 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);
}
这在视图中订购之前效果很好。
如果缺少重要的内容,请立即告诉我。
Thanks!
相反或中继$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);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)