我想从表中删除多个选定的行,但它只删除最后一行

时间:2015-10-23 12:33:02

标签: angularjs html5

我有一个两页的应用程序。第1页用于创建表的输入,并根据此输入在下一页创建表。

这是我的第一页:

enter image description here

这是我的第二页,它是使用第一页输入创建的。 enter image description here

我想根据选中的复选框删除行,但它总是从最后删除行。

这是我的controllers.js

$scope.tableSelection = {};
    ['Delete', function ($itemScope) {
//$rootscope.rows contains the number of rows given as input
                               for (var i = $rootScope.rows.length - 1; i >= 0; i--) {
                                          if ($scope.tableSelection[i]) {
                                            //delete row from data
                                              $rootScope.rows.splice(i, 1);
                                            //delete rowSelection property
                                            delete $scope.tableSelection[i];
                                }
                                     }
                                     }]

这是我的第二个html页面,我需要根据选择删除行

<tbody>
        <tr ng-repeat="row in rows track by $index" ng-class="{'success' : tableSelection[$index]}">
        <td>
        <input type="checkbox" ng-model="tableSelection[$index]">
       </td>
           <td  ng-repeat="col in output_columns track by $index">
         &lt;enter data&gt;
       </td>
       <td ng-repeat="col in input_columns track by $index">
         &lt;enter data&gt;
       </td>

        </tr>
      </tbody>

但是只有最后一行被删除而不是被选中的行。 任何人都可以建议我错过或做错了。

1 个答案:

答案 0 :(得分:0)

It could be because you are providing an index value of -1. Splice will always remove the last row if the index value you pass is -1.