繁体   English   中英

在Angular js中单击按钮上删除选定的行

[英]Remove selected rows on a button click in angular js

我有一张桌子,每一行都有复选框。

单击按钮后,我需要删除表中所选复选框的行。 (此按钮在ng-repeat之外)。

使用ng-change函数将选定行的索引填充到数组中,但是我无法通过单击一个按钮来删除选定行

这是小提琴

的HTML

<div ng-app="approvalApp">
<div ng-controller="SimpleApprovalController" >
<table style="width:90%" border="5"  >
<tr>   
    <th><input type="checkbox" ng-model="CheckAllData" ng-    change="selectAll()" /></th>
    <th>Date</th>
   <th>AssociateID</th>   
<th>Check-In</th>
<th>Checkout</th> 
</tr>

<tr data-ng-repeat="approval in approvalitems">     
    <td><input type="checkbox" value="{{approval.ReqId}}" data-ng-model="approval.selected" data-ng-change="SelectDeselect($index)"/></td>
<td>{{approval.Date}}</td>
<td>{{approval.AssociateID}}</td>
<td>{{approval.CheckIn}}</td>
<td>{{approval.Checkout}}</td>

</tr>
</table>
<input type="button" value="Approve" data-ng-model="ApproveIndex" data-ng-click="ApproveRequest()" />

脚本

    $scope.SelectDeselect=function(index)
    {
        $scope.getIndexvalues = [];
        angular.forEach($scope.approvalitems, function (approval,index) {               
            if (!!approval.selected) {
               $scope.getIndexvalues.push(index);
                $scope.CheckAllData = false;                 
            }              
        });

        console.log($scope.getIndexvalues);
    };

$scope.ApproveRequest = function () {           
        $scope.selectedIdsArray = [{}];          
        angular.forEach($scope.approvalitems, function (item) {                
            if (!!item.selected) { 
                $scope.selectedIdsArray.push({ Reqid: item.ReqId, Status: "Approved" });
                $scope.CheckAllData = false; 
            }               
        });           

    };
};

因此,如何在approverequest函数中使用getIndexvalues,还是有其他更好的方法使用其他angular指令将其删除。 我是angular js的新手。

你可以做

$scope.ApproveRequest = function () {           
  $scope.approvalitems = $scope.approvalitems.filter(function(i){
      return !i.selected;
  });
};

小提琴: http : //jsfiddle.net/jpk547zp/1/

$scope.ApproveRequest = function () {
    $scope.selectedIdsArray = [{}];
    $scope.approvalitemsNew = [];
    angular.forEach($scope.approvalitems, function (item) {
        if (!!item.selected) {
            $scope.selectedIdsArray.push({ Reqid: item.Date, Status: "Approved" });
            $scope.CheckAllData = false;
            item.hideThis = true;
            console.log($scope.selectedIdsArray);
        } else {
            $scope.approvalitemsNew.push(item);
        }
    });
    $scope.approvalitems = $scope.approvalitemsNew;
    $scope.getIndexvalues = [];
};

希望这可以帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM