我有这个资源:
myModule.factory('MyResource', ['$resource', 'geoLocationService', function ($resource, geoLocationService ) {
return $resource('/blabla', {}, {
'getData': { method: 'GET', params: { city: geoLocationService.getMyCity() } }
});
}]);
问题是调用时MyResource.getData()
, geoLocationService 还没有完成获取位置。
geoLocationService 有一个承诺,可以让我打电话
geoLocationService.promise.then(...)
但我不知道如何将这个承诺与资源结合起来。任何想法?
编辑 我正在寻找类似的东西:
myModule.factory('MyResource', ['$resource', 'geoLocationService', function ($resource, geoLocationService ) {
return $resource('/blabla', {}, {
'getData': { method: 'GET', beforeFetchPromise: geoLocationService.promise, { city: geoLocationService.getMyCity() } }
});
}]);
所以只有当 geoLocationService.promise 被解析或拒绝时,才会发生带参数的 ajax 调用。