5

我正在寻找从网格中删除项目的解决方案;这就是为什么我之前发布了这个问题。但是当我从某人那里得到解决方案时,当时我认为它解决了问题,但它使用的是过滤器方法。

但是,我希望使用拼接函数从 GRID 中删除这些项目。

这是我的旧问题链接 Angularjs,对表中选定的复选框应用操作

我希望它使用拼接函数执行。

现在我面临的问题是将索引值传递给函数,以便在选择/获取该索引值时可以删除该项目。我不知道如何解决它。

如果有人解决问题并提供更新代码的演示链接,那就太好了。

这是我迄今为止尝试过的 Plunker Link 。Plunker 链接显示我的执行

4

2 回答 2

7

JS array.splice 方法的定义(来自MDN):

array.splice(索引, howMany[, element1[, ...[, elementN]]])

所以,你的remove函数应该写成:

$scope.remove = function(index){
  $scope.students.splice(index, 1);
};

演示柱塞

编辑:

我想你想通过单击“x”按钮来删除这些项目,并且 ng-click 指向remove函数。

要通过单击复选框来删除项目,您应该将复选框 ngModel 设置为学生属性,然后将 $watcher 放在学生身上,这将删除那些将此属性设置为 true 的学生:

<tr class="color2" ng-repeat="student in students | filter:search | filter:new_search">
  <td>{{student.Rollno}} <input type="checkbox" ng-model="student.checked"> </td>
  <td>{{student.Name}}</td>
  <td>{{student.Uni}} <button ng-click="remove($index)">x </button></td>
</tr>
$scope.$watch('students', function(students){
   if(!students){
     return;
   }
  $scope.students = students.filter(function(student){
    return !student.checked;
  });
}, true);

普努克

于 2013-06-28T10:09:16.207 回答
6

我已将 ng-click 添加到复选框以使其正常工作

http://plnkr.co/edit/DSVPj3holsf4nhNvEMbQ?p=preview

于 2013-06-28T10:11:03.870 回答