AngularJS: не удалять данные, пока ресурс не загрузится
Я совершенно новичок в $resource
так что я не уверен, как его использовать.
(это не настоящий код, но он похож)
оказание услуг:
.factory('User', function ($resource) {
return $resource(apiPath + 'user/:id', {}, {
query: {method: 'GET', isArray: true}
})
})
контроллер:
$scope.showUser = function(userID){
$scope.user = User.get({id:userID});
}
Посмотреть:
<button ng-click="showUser(user.id+1)">Show user</button>
<h1>{{user.name}}</h1>
Это прекрасно работает, но каждый раз, когда я нажимаю кнопку, имя пользователя исчезает, а затем появляется при возврате данных - $scope.user
становится пустым, пока не будет загружен следующий пользователь. Я не хочу этого, я хочу, чтобы старый пользователь оставался до загрузки следующего пользователя. Благодарю.
1 ответ
Решение
Вы можете указать функцию обратного вызова, которая будет выполняться при получении ресурса.
// Not assigning the return value here on the scope ...
User.get({ id: userID}, function(user) {
// ... but rather here when the call has completed.
$scope.user = user;
});
Для получения дополнительной информации смотрите документацию $ resource.