如何在angularjs中存储复选框的有效ng更改事件

How to store valid ng-change event for checkbox in angularjs

本文关键字:ng 有效 事件 复选框 angularjs 存储      更新时间:2023-09-26

我有多个输入文本复选框。我想将更改框事件存储在一个数组中,稍后当用户提交"保存更改"时,它应该被保存。

<td><input type="checkbox" class="switch" ng-model="each_value.at_enable_flag" ng-change="changeMyArray(each_value)"> </td>

问题是,如果用户切换复选框(开/关),它会同时存储两个条目,而不仅仅是最新的条目。

我试图删除重复的,但也有一些问题。

有人能帮我知道如何在复选框原始值发生变化的情况下将cehckbox值存储在数组中吗。

这是我的plunkr。请看一看,如果你需要更多的细节,请告诉我。

https://plnkr.co/edit/ZE5xWhfpmbSXqflDs5Qv?p=preview

只需将原始值存储在单独的属性中。然后与您的模型进行比较。

https://plnkr.co/edit/IAOUhH7tekTzl15uFi8N?p=preview

在您的代码中。

$scope.toTemplate.forEach(function (value) {
      value.default = value.at_enable_flag;
    });
    $scope.myArray = [];
    $scope.saveAtData = function() {
      $scope.myArray = $scope.toTemplate.filter(function (value) {
        return value.default !== value.at_enable_flag;
      });
      console.log($scope.myArray);
      $scope.saveValue = $scope.myArray;
    }

没有必要对输入进行ng更改,因为它会激发超出需要的内容。只需过滤数组中更改的值就足够了。