Как сохранить действительное событие ng-change для флажка в angularjs

0

У меня есть несколько полей ввода. Я хочу сохранить событие смены в массиве, а позже, когда пользователь отправит изменения "Сохранить", он должен быть сохранен.

<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

Теги:
checkbox

1 ответ

0
Лучший ответ

Просто сохраните исходное значение в отдельном свойстве. Затем сравните с вашей моделью.

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-изменении на входе, поскольку он срабатывает больше, чем необходимо. Достаточно просто фильтровать массив для измененных значений.

  • 0
    месть вниз голосом, путь.
  • 0
    Я думаю, что это решает мою цель. Большое спасибо @sielakos за вашу помощь.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню