Aus*_*ell 4 rest angularjs angular-promise
我在页面上有多个使用相同服务的控制器,为了举例我们将调用服务USER.
第一次调用USER.getUser()时,它会对用户的GET数据执行$ http请求.调用完成后,它将数据存储在USER.data中.如果对USER.getUser()进行另一次调用,它会检查USER.data中是否有数据,如果有数据,则返回该数据,而不是进行调用.
我的问题是对USER.getUser()的调用发生得如此之快,以至于USER.data没有任何数据,因此它再次触发$ http调用.
以下是我现在为用户工厂提供的信息:
.factory("user", function($http, $q){
return {
getUser: function(){
var that = this;
var deferred = $q.defer();
if(that.data){
deferred.resolve(that.data);
} else {
$http.get("/my/url")
.success(function(res){
that.data = res;
deferred.resolve(that.data);
});
}
return deferred.promise;
}
}
});
Run Code Online (Sandbox Code Playgroud)
我希望我的问题有道理.任何帮助将非常感激.
kfi*_*fis 10
这对你有用吗?
.factory("user", function($http, $q) {
var userPromise;
return {
getUser: function () {
if (userPromise) {
return userPromise;
}
userPromise = $http
.get("/my/url")
.then(function(res) {
return res.data;
});
return userPromise;
}
}
})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2440 次 |
| 最近记录: |