Angularjs 筛选后从列表中删除项目

Angularjs 筛选后从列表中删除项目,angularjs,angularjs-ng-repeat,Angularjs,Angularjs Ng Repeat,我有以下问题: 我创建了一个列表,允许用户从列表中删除项目,如下所示: 当用户单击垃圾箱图标时,该项目将正常删除。 问题是当用户使用顶部的过滤器时 在这种情况下,如果我删除编号6565(原始列表中的索引4,过滤列表中的索引1),则删除的项目位于原始列表中的索引1上,从而删除编号为#564456的寄存器 这是我单击时的删除呼叫: $scope.deleteOwn = function (uuid) { console.log(uuid); var coupon = $scop

我有以下问题:

我创建了一个列表,允许用户从列表中删除项目,如下所示:

当用户单击垃圾箱图标时,该项目将正常删除。 问题是当用户使用顶部的过滤器时

在这种情况下,如果我删除编号6565(原始列表中的索引4,过滤列表中的索引1),则删除的项目位于原始列表中的索引1上,从而删除编号为#564456的寄存器

这是我单击时的删除呼叫:

 $scope.deleteOwn = function (uuid) {
    console.log(uuid);
    var coupon = $scope.ownsCoupons[uuid];
    Coupon.delete({'id' : coupon.uuid}, function () {
        $scope.ownsCoupons.splice(uuid, 1);
    });
}
这是我的html模板:

<td><a href="" ><i class="icon-trash" ng-click="deleteOwn($index)"></i></a></td>

我还尝试使用代码:
$scope.ownshopons.splice(优惠券,1)没有成功

有人知道如何解决这个问题吗

我已经使用以下引用进行了编码:

[编辑]


我已经为此创建了一个插件:

正如@pkozlowski.opensource所提到的,您不能依靠
$index
以这种方式识别数组中的项。我会作出以下更改:

HTML:


您不能依赖索引,而是使用对象引用。不知道为什么拼接不适合你。你需要分享更多的代码(最好是和plunker一起生活),这样人们可以帮助你更多。谢谢你的回复!我已经用plunker更新了这个问题。嘿,Brandon,你能解释一下(索引!=-1)到底在做什么吗?谢谢。@LoveAndHappiness
array.indexOf(item)
如果
数组中找不到
item
,则返回
-1
。如果
索引!=-1
,则该项目已找到,可以删除。