2015-10-26 3 views
0

Я пишу фабрику в угловом формате, которая использует два набора данных. Мне нужен один набор данных, чтобы он равнялся переменной, поэтому я могу передать это в другом вызове API. По какой-то причине моя переменная всегда возвращает целую функцию вместо того, чтобы просто возвращать переменные. Доступны все переменные среды.Угловая фабрика ngResource. Функция возврата Var вместо обещания

var zones = function(){ 
      var deferred = $q.defer(); 
      $resource(ENV.web_api_url + ENV.api_version + '/zones/:zoneId', {}, { 
       query: { 
        method: 'GET', 
        cache: false, 
        params: {zoneId: '@zoneId', date: $filter('date')(new Date(), "yyyy-MM-dd")}, 
        isArray: true, 
        headers: { 
         "X-Auth-Token": $window.sessionStorage.token 
        } 
       } 
      }).success(function(data){ 
       deferred.resolve(data); 
      }).error(function(){ 
       deferred.reject('There was an error') 
      }); 
      return deferred.promise; 
     }; 

ответ

0

Вы определяете ресурс и вызываете «.success()» на фактическом ресурсе, а не при вызове GET. Вот то, что вы должны сделать:

var res = $resource(ENV.web_api_url + ENV.api_version + '/zones/:zoneId', {}, { 
      query: { 
       method: 'GET', 
       cache: false, 
       params: {zoneId: '@zoneId', date: $filter('date')(new    Date(), "yyyy-MM-dd")}, 
       isArray: true, 
       headers: { 
        "X-Auth-Token": $window.sessionStorage.token 
       } 
      } 
     }); 
     res.get(null, function(data){ 
      deferred.resolve(data); 
     },function(){ 
      deferred.reject('There was an error') 
     }); 
+0

говорит .get() не является функцией ... – user1842315

+0

я просто редактировал синтаксис там. Вы обязательно должны прочитать эту страницу: https://docs.angularjs.org/api/ngResource/service/$resource – alcfeoh

1

вам не нужно собственное обещание использовать нг-ресурс:

var zones = function(){ 
return $resource(query : {...}).query(); 
} 
+0

Если я это сделаю, она ничего не вернет – user1842315

Смежные вопросы