【发布时间】:2016-07-20 21:58:40
【问题描述】:
我正在尝试从 AngularJS 中名为 retrieveUser() 的 $rootScope 函数返回一个对象。对象被返回。我在 $http 成功时运行的函数响应上运行了 console.log()。这是我的 $rootScope 函数:
$rootScope.retrieveUser = function() {
var apiUrl = "http://104.251.218.29:8080";
if($cookies.get('tundraSessionString')) {
var cookie = $cookies.get('tundraSessionString');
$http({
method: "POST",
url: apiUrl + "/api/master/v1/auth/checkauth",
data: "sessionString=" + cookie,
headers: {
'Content-Type' : 'application/x-www-form-urlencoded;',
'Cache-Control': 'no-cache'
}
}).then(function mySuccess(response) {
if(response.data.event == "error") {
window.location = "/auth/logout";
} else {
return response.data;
}
})
} else {
window.location = "/auth/login";
}
};
使用这种方法,我可以在我的控制器中访问它(和 console.log() 只是为了测试我的工作):
vm.user = $rootScope.retrieveUser();
console.log($rootScope.retrieveUser());
但是,我还没有让它工作。我尝试在 $rootScope 函数的数组中指定特定对象。我知道它会运行,因为它运行时我有 $rootScope 来安慰某些东西,并且它显示了 $http 请求响应的 console.log()。它看起来像这样:
Object {event: "success", table: Object}
event:"success"
table:Object
__proto__:Object
然而,当我使用函数 $rootScope.retrieveUser() console.log() vm.user 时,即使该函数应该返回对象,我也只是收到“未定义”。
几天来我一直在努力解决这个问题,阅读了一些关于函数/对象的文章,但我仍然无法弄清楚这一点。两天了。
【问题讨论】:
标签: javascript angularjs json