У меня есть форма, которая при загрузке отправляет запрос GET на сервер и возвращает данные, которые будут храниться в «master», и я копирую эти данные в «local», как показано ниже.Сравнение объектов в AngularJS
$scope.dirty = false;
init(data);
function init(data) {
$scope.master = angular.copy(data.data);
$scope.local = angular.copy($scope.master);
}
Теперь я использую локальный объект в качестве модели для своей формы, и у меня есть кнопка отправки и сброса. Я смотрю локальный объект, как показано ниже.
$scope.$watchCollection('local', function (newLocal, oldLocal) {
$scope.dirty = !angular.equals(newLocal, $scope.master);
});
Итак, если грязная правда, то я могу знать, что данные были изменены, но так как я с помощью объектов AngularJS добавляет $$ hasKey к $scope.local
и из-за этого $scope.dirty
всегда устанавливает истину.
Итак, есть ли способ справиться с этой проблемой? Я новичок в AngularJS, поэтому может быть, это может быть забавный вопрос, но я застрял.
Если я использую этот код, тогда $ scope.local = angular.copy ($ scope.local) не будет работать. Итак, я должен использовать $ scope.local = angular.copy (data.data) правильно? – nextt1
как это так? вы могли бы ввести другую переменную? – cl3m
Выше код не работает. – nextt1