点击ng-repeat

时间:2016-12-22 12:40:46

标签: javascript angularjs angularjs-ng-repeat

我通过ng-repeat显示数据。有按钮。删除项目。 删除项目后,此按钮必须仅针对我删除的项目消失。

<tr ng-repeat="paymentinfo in paymentList | filter:keyword | filter:money | filter:getdate | filter:{state: 'archived'}: archived.state ? true : false">
  <td id="outmouse">
    <ul style="list-style: none;" class="gt-reset">
      <li class="dropdown changecoursename">
        <a class="dropdown-toggle" data-toggle="dropdown">
          <span class="tableOperation norlmalstate">Open Course</span>
          <span class="tableOperation openedstate">more options</span>
          <b class="caret"></b>
        </a>
        <ul class="dropdown-menu">
          <li><a class="tableOperation" ng-click="paymentRemarks()">Remarks</a></li>
          <li><a class="tableOperation" ng-click="paymentReturn(paymentinfo)">Return</a></li>
          <li ng-switch on="paymentinfo.state">
            <div ng-switch-when="archived" class="archived__state">{{paymentinfo.state}}</div>
            <a ng-switch-default class="tableOperation" ng-click="paymentDelete();">{{deletebtn}}</a>
          </li>
        </ul>
      </li>
    </ul>
  </td>
</tr>

我需要删除的地方

<li ng-switch on="paymentinfo.state">
  <div ng-switch-when="archived" class="archived__state">{{paymentinfo.state}}</div>
  <a ng-switch-default class="tableOperation" ng-click="paymentDelete();">{{deletebtn}}</a>
</li>

我的JS

$scope.datas = [{
  date: '06-12-2016',
  name: 'Pinao Class',
  state: 'archived',
  remark: 'remarled',
  amount: 101,
  id: 21
}, {
  date: '15-04-2016',
  name: 'drivers Class',
  state: 'notarchived',
  remark: 'remarled',
  amount: 102,
  id: 22
}];
$scope.paymentList = $scope.datas;

$scope.deletebtn = "delete";

$scope.paymentDelete = function() {
  $scope.www = true;
  $scope.deletebtn = false;
}

我的代码删除所有元素只需要我选择的删除

1 个答案:

答案 0 :(得分:0)

试试这个

ng-click="paymentDelete(this.paymentinfo);">// pass current object to delete function

$scope.paymentDelete = function (paymentinfo ) {
      $scope.www = true;
      var index = $scope.paymentList.indexOf(paymentinfo );
    if (index > -1) {
    $scope.paymentList.splice(index, 1);
   }
 }
相关问题