Угловой ресурс очищает данные объекта после публикации
Мое угловое приложение очищает данные после публикации.
Вот фрагмент из контроллера:
$scope.saveDevice = function() {
var deviceId = $scope.device.id;
if (deviceId) {
$scope.device.$update(function(result) {
$location.path('/devices');
});
} else {
$scope.device.$save().then(function (deviceResult) {
$scope.device.id = deviceResult.deviceId;
$scope.device.$activationCode(function (result) {
$scope.device.activationCode = result.activationCode;
});
});
}
};
Когда я достигаю точки останова в "$scope.device.$ Save(). Then(function (deviceResult) {", приложение показывает, что устройство заполняется свойствами из формы. Но после публикации устройство очищается от любых свойств. это нормальное поведение? Если так, как я могу предотвратить это?
2 ответа
Здесь я нашел ответ на мою проблему:
AngularJS - Предотвратить очистку формы
В принципе:
вызов метода класса
Device.save($scope.device) //....
вместо
$ Scope.device. $ Сохранить
и он будет состоять из данных, находящихся в классе $scope.device.
Я не уверен, поможет ли это, но из документов. Это слишком долго, чтобы оставить комментарий.
Важно понимать, что вызов метода объекта $ resource немедленно возвращает пустую ссылку (объект или массив в зависимости от isArray). Как только данные возвращаются с сервера, существующая ссылка заполняется фактическими данными. Это полезный прием, так как обычно ресурс назначается модели, которая затем визуализируется представлением. Наличие пустого объекта не приводит к визуализации, как только данные поступают с сервера, тогда объект заполняется данными, и представление автоматически повторно отображает себя, показывая новые данные. Это означает, что в большинстве случаев никогда не нужно писать функцию обратного вызова для методов действия.