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

时间:2017-12-22 16:27:44

标签: arrays angularjs json function checkbox

我有一个带有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
}

2 个答案:

答案 0 :(得分: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 :(得分: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
      }

希望它有所帮助。