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.

Другие вопросы по тегам