@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
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы