如果用户已登录,我希望实现Angular承诺,但如果不是,我希望为后端提供默认值。这目前有效,但显然它是非常重复的。任何人都可以提供任何指导吗?
到目前为止,这是我的代码:
this.getUserDetails = TestService.get({ id: signedIn.id });
this.getUserDetails
返回一个JSON对象,然后我需要使用它来发出后续的GET请求,但前提是用户已登录。
// this is executed if user not signed in
if(!signedIn.Id){
controller.test_type = "Whatever"
TestService.query({test_type: controller.test_type}, function (prices) {
this.test = prices.prices;
}).$promise;
}
//executed if user is signed in, but must wait for backend to return data first
else{
this.getUserDetails.$promise.then(function(data){
TestService.query({test_type: data.test_type}, function (prices) {
this.test = prices.prices;
}).$promise;
}
如果需要进一步的详细信息,请与我们联系。
由于
答案 0 :(得分:1)
如何链接和嵌套这样的调用:
function check(){
if(signedIn){
return this.getUserDetails.$promise
}else{
return $q.when(controller)
}
};
check().then(function(data){
TestService.query({test_type: data.test_type}, function (prices) {
this.test = prices.prices;
});
});