我试图从数组中删除元素,$scope.items以便在视图中删除项目ng-repeat="item in items"
仅出于演示目的,这里有一些代码:
for(i=0;i<$scope.items.length;i++){
if($scope.items[i].name == 'ted'){
$scope.items.shift();
}
}
Run Code Online (Sandbox Code Playgroud)
如果有名称ted,我想从视图中删除第一个元素?它工作正常,但视图重新加载所有元素.因为所有数组键都已移位.这在我创建的移动应用程序中造成了不必要的延迟.
任何人都有这个问题的解决方案?
我有以下问题:
我创建了一个允许用户从列表中删除项目的列表,如下所示:

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

在这种情况下,如果我删除数字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);
});
}
Run Code Online (Sandbox Code Playgroud)
这是我的html模板:
<td><a href="" ><i class="icon-trash" ng-click="deleteOwn($index)"></i></a></td>
Run Code Online (Sandbox Code Playgroud)
我也尝试使用代码:$scope.ownsCoupons.splice(coupon, 1);没有成功.
有谁知道如何解决这个问题?
我使用以下引用编写了代码:AngularJS如何从作用域中删除Item
[编辑]
我为此创建了一个Plunker:http://plnkr.co/edit/Fhxp6uZyTJCY05CAQ7yA?p = preview
根据我的知识,当我们将一个变量附加到范围时,会对其应用监视并在每个摘要循环中检查它.一个好的经验法则是,我们不应该在给定的时间内观察超过2000个变量.
我的问题是如何从范围中删除已存在的变量.例如,$scope.var1=1我说我必须创建它一次性使用.我是否有可能从范围中"删除"它或者是否会在范围的生命周期内观察变量?
编辑:
从下面的评论中我了解到你应该手动移除手表,否则当范围被破坏时它们会被销毁.但是我仍然不清楚如何删除由ngModel等指令设置的变量的监视?
是否有可能使用"ion-list"实现"刷卡到删除"(如在Android任务屏幕中)功能?
我找到了"can-swipe"指令,它允许添加一些出现在部分刷卡项目下的按钮,但这不是我正在寻找的.我需要完全刷一个项目(两侧),并在它被刷到屏幕的末尾时将其删除.