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