@daniilkholodniy

Как сохранить результат запроса при использовании $resource?

Почему при использовании кода вроде:
$http.get(url).
    success(function(response) {
			$scope.receiveData = response;
   });

переменная receiveData хранит данные полученные при запросе,
a в случае с $resource:
var someServices = angular.module('someServices', ['ngResource']);

		someServices.factory('QueryesService', ['$resource', function($resource) {
			return $resource('http://url/:currentService/:param');
		}]);

		var someControllers = angular.module('someControllers', []);

		someControllers.controller('someCtrl', ['$scope', '$http', 'QueryesService', function($scope, $http, QueryesService) {

			$scope.getSomeData = function() {
				QueryesService.get({currentService : 'service1'}, function(response) {
					$scope.receiveData = response;
				});
			};
                        $scope.receiveData; //undefined
               }]);

при обращении к переменной receiveData возвращается undefined? Знаю что дело в асинхронности и в deffered promise, но своими силами никак не могу разобраться, как все же добиться сохранения результата запроса, что бы можно было эту переменную использовать как и в случае с $http.get.
  • Вопрос задан
  • 168 просмотров
Пригласить эксперта
Ответы на вопрос 3
@Gilga
Мб $scope.receiveData = response.data;
Ответ написан
@Ramallah
Потому что промисы и асинхронность.
Ответ написан
Возможно
.controller 'someCtrl', ($scope, QueryesService) ->
  $scope.receiveData = {}
  $scope.getSomeData = ->
    QueryesService.get currentService : 'service1', (response) ->
       angular.extend $scope.receiveData, response

Из текста не особо понятно, что ты хочешь конкретно сделать
Может тебе поможет IcedCoffeeScript
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы