我正在以角度编写一个使用两组数据的工厂。我需要一组数据来等于一个变量,所以我可以在另一个API调用中传递它。由于某种原因,我的变量总是返回整个函数,而不是只返回变量。所有环境变量都可用。
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 :(得分:1)
您不需要自己的承诺来使用ng-resource:
var zones = function(){
return $resource(query : {...}).query();
}
答案 1 :(得分: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')
});