【发布时间】:2014-03-20 08:47:04
【问题描述】:
我有一个显示项目名称的表格,如下图所示,
单击删除按钮时,我将选定的复选框数据作为对象数组传递给我的控制器
[{id:1,name:'Name 8'},{id:2,name:'Name 7'}]
然后从服务器端的表中删除名称。这一切都很好,但我如何在删除它们后从 DOM 中删除行?我浏览了这个post,它说如何从 DOM 中删除 ng-repeat 元素,但在这种情况下,通过将 $index 传递给 splice() 函数,一次删除一个元素
在我的情况下,我需要删除多行。如果我不得不在我的控制器中使用拼接功能,我如何从选定的行对象中获取索引?或者有没有更好的方法。
希望我的问题很清楚!
更新: jsFiddle
解决方案:我不得不稍微修改@wickY26 的答案以适应我的场景。这是我的更新jsFiddle
我所做的是,在 delete() 中将代码更改为
angular.forEach($scope.projects, function (row, index) {
if($scope.projects[index].checked) {
$scope.projects.splice(index,1);
}
});
【问题讨论】:
-
您的 ng-repeat 绑定到范围数组/对象?只需从这个数组中拼接它,角度双重绑定就会删除线本身..还是我错过了什么?
-
是的,我正在传递选中复选框的对象数组,例如 - [{id:1,name:'Name 8'},{id:2,name:'Name 7'}]跨度>
-
请创建一个小提琴/plunkr。我想您需要在删除事件侦听器的末尾添加
$scope.apply()。 -
@Alp - 我已经用 jsFiddle 更新了我的问题
标签: javascript angularjs