【问题标题】:Execute funcionts if checkbox is checked or uncheked ? Angular如果选中或未选中复选框,则执行功能?角
【发布时间】:2018-06-05 06:54:49
【问题描述】:

我有一个包含 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


    【解决方案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);
     }
    }
    

    【讨论】:

    • emm 这行得通,但我的问题是 ng-true-value 和 ng-false-value 中的调用函数不起作用
    • @DaniloCaroAparicio 如上所述使用 ng-change
    【解决方案2】:

    据我了解,您无法调用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
          }
    

    希望对你有帮助。

    【讨论】:

      猜你喜欢
      • 2016-01-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-02
      • 1970-01-01
      相关资源
      最近更新 更多