Javascript $rootScope变量未定义?
因此,我试图在用户登录后(在onLogin函数运行后)在NavCtrl中获取一个对象($rootScope.User) 但是,我做错了什么,我不知道该怎么解决它。我认为它可能在得到值之前读取代码。但是,我不是很确定。如果有人能帮我,那太棒了 谢谢Javascript $rootScope变量未定义?,javascript,angularjs,Javascript,Angularjs,因此,我试图在用户登录后(在onLogin函数运行后)在NavCtrl中获取一个对象($rootScope.User) 但是,我做错了什么,我不知道该怎么解决它。我认为它可能在得到值之前读取代码。但是,我不是很确定。如果有人能帮我,那太棒了 谢谢 .controller('LoginCtrl', function (Backand, $state, $rootScope, LoginService, $ionicPopup, dataService) { var login = thi
.controller('LoginCtrl', function (Backand, $state, $rootScope, LoginService, $ionicPopup, dataService) {
var login = this;
$rootScope.isLoggedin = null;
function signin() {
LoginService.signin(login.email, login.password)
.then(function () {
onLogin();
}, function (error) {
console.log(error);
$rootScope.showAlert = function () {
var alertPopup = $ionicPopup.alert({
title: 'Login Error',
template: error.error_description
});
};
$rootScope.showAlert();
});
}
function onLogin() {
$rootScope.$broadcast('authorized');
$state.go('tabs.feed');
login.username = Backand.getUsername();
$rootScope.isLoggedin = true;
$rootScope.cUser = Backand.getUserDetails().$$state.value;
console.log($rootScope.cUser);
}
});
.controller('NavCtrl', function($scope, $rootScope, Backand, dataService) {
function getUser() {
$scope.user = $rootScope.cUser;
console.log($scope.user);
}
getUser();
});
这是个打字错误。从
console.log($rootScope.User)上方的cUser
行中删除c
;
或执行此操作
console.log($rootScope.cUser);
可能不是您想要的答案,但请避免使用
$rootScope
存储全局数据
使用服务并注入它
.factory('UserService', function() {
return {
user : {name:'anonymous'}
};
});
然后在控制器中:
.controller('NavCtrl', function($scope, UserService, Backand, dataService) {
$scope.user = UserService.user;
}
执行此操作时,
$state.go('tabs.feed')
是否有可能tabs.feed
正在调用NavCtrl?如果是的话,那么是的,您在设置值之前就已经阅读了。在我发布问题后,我实际上已经纠正了这个拼写错误,但它仍然不起作用。。。