如果选中或取消选中复选框,则执行功能?角

问题描述 投票:1回答:2

我有一个带有x记录的表,从表中我想要将项目添加到数组中(或者如果取消选中行则删除)但我不知道如何执行函数,如果复选框是否为真......但这不起作用

<tr ng-repeat="item in vm.orders" ng-click="vm.getRow(item)">
  <td>{{item.Name}}</td>
  <td>{{item.state}}</td>
  <td><input type="checkbox" 
             ng-true-value="vm.addToArray(item)" 
             ng-false-value="vm.removeFromArray(item)" 
  /></td>
</tr>

控制器:

function addToArray(model) {
    vm.selectedItems.push(model);
}

function removeFromArray(model) {
   //my logic remove
}
arrays angularjs json function checkbox
2个回答
1
投票

并按如下方式更改ng-repeat,

<td><input type="checkbox" ng-model="checked" 
            ng-change="addorRemove(checked, item)"" 

  /></td>

使用array.splice

function addorRemove(checked,model) {
  if(checked ==false){
  vm.selectedItems.splice(model, 1);
  }
  else
  {
    vm.selectedItems.push(model);
 }
}

1
投票

根据我的理解,你无法调用addToArrayaddToArray。要实现这一目标,您可以使用ng-change,如下所示:

<input type="checkbox" ng-model="item.myChkModel" ng-change="vm.myClick(item)">

 $scope.vm.myClick = function($event) {
            //write logic to add or remove item based on model value
      }

希望能帮助到你。

© www.soinside.com 2019 - 2024. All rights reserved.