【发布时间】:2016-01-28 12:04:11
【问题描述】:
调用服务函数时遇到回调问题
这是我在registrationService中定义的函数
function hasUserAccessToLevel(incentiveLevel, callback, showRegistrationView) {
var url = "...";
httpWrapperService.get(url)
.then(
function success(data) {
var hasAccess = incentiveLevel <= data.Level;
callback(hasAccess);
if (showRegistrationView && hasAccess == false) {
showRegistrationViewForLevel(incentiveLevel);
}
},
function error(errorObject) {
alert("User has not access\r\nTODO : show popup for registration/login");
}
);
return false;
}
在我的指令中,我将此函数用作
function checkAuthentication() {
registrationService.hasUserAccessToLevel(2, function (hasAccess) {
if (hasAccess == false){
return false;
}
else{
return true;
}
});
}
function loadDocuments() {
var target=checkAuthentication()
if(target)
{
//load both private and public
}
else
{
// load only public
}
}
现在我面临的问题是,我有另一个函数 loaDocuments ,当用户登录时,它应该进入 if(target) 块,但是当我调试该函数时,它说目标未定义,因此控制将转到其他部分,这是错误的。我知道有一些回调问题,但不知道如何纠正它。
任何帮助都是可取的。 谢谢
【问题讨论】:
-
checkAuthentication方法未返回任何内容,因此返回值将始终为undefined
标签: javascript angularjs callback