gpt4 book ai didi

javascript - 在AngularJS中将数据从服务传递到 Controller

转载 作者:行者123 更新时间:2023-12-03 12:29:42 25 4
gpt4 key购买 nike

以下是我的服务代码 -

myApp.service('loginServiceChk', function(){
this.getInfo = {};
this.chkLogin = function($http,$location,$window){
$http.get('/users/chklogin')
.success(function (data, status, headers, config) {
if (data.code!="200"){
this.getInfo = {};
$window.location.href='/#/users/login';
}else{
this.getInfo = data.usersession;
}
});
};
});

我的 Controller 代码 -

myApp.controller('userDash',function($scope,$http,$location,loginServiceChk,$window){
loginServiceChk.chkLogin($http,$location,$window);
console.log(loginService.getInfo);
$scope.userLogout = function() {
$http.get('/users/logout').success(function (data, status, headers, config) {
if (data.logout=="200"){
merInfo = {} ;
$window.location.href='/#/userss/login';
}
})
};
});

但是我总是在控制台中得到一个空对象( console.log(loginService.getInfo); )。让我知道我在这里做错了什么。

我期待 this.getInfo 中的 session 数据。

编辑

如果我使用.then,那么它将进入if,即if (data.code!="200"){在这里。

最佳答案

你必须等待 promise 。

在你的 Controller 中使用它:

loginServiceChk.chkLogin($http,$location,$window).then(function() {
console.log(loginService.getInfo);
});

并将return 添加到您的服务中:

this.chkLogin = function($http,$location,$window){
return $http.get('/users/chklogin')
.then(function (data, status, headers, config) {
if (data.code!="200"){
this.getInfo = {};
$window.location.href='/#/users/login';
}else{
this.getInfo = data.usersession;
}
});
};

关于javascript - 在AngularJS中将数据从服务传递到 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23991652/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com