$rootScope变量未定义
$rootScope variable coming up undefined?
所以,我试图在用户登录后(在onLogin函数运行之后(在NavCtrl中获取一个对象($rootScope.User(。
但是,我做错了什么,我不知道如何解决它。我认为它可能在获得值之前正在读取代码。但是,我不太确定。如果有人能帮助我,那就太棒了!
谢谢!
.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();
});
可能
不是您要查找的答案,但请避免使用$rootScope
来存储全局变量
使用服务并注入它
.factory('UserService', function() {
return {
user : {name:'anonymous'}
};
});
然后在控制器中:
.controller('NavCtrl', function($scope, UserService, Backand, dataService) {
$scope.user = UserService.user;
}
这是一个
错字。从cUser
console.log($rootScope.User);
上方一行中删除c
或者这样做
console.log($rootScope.cUser);
当你这样做$state.go('tabs.feed')
tabs.feed
是否有可能调用 NavCtrl?如果是这样,那么是的,您在设置值之前正在阅读它。
相关文章:
- Socket.IO未定义变量
- 更改 Javascript 对象中所有未定义变量的值
- coffeescript,类未定义变量
- 使用下划线未定义变量时发生抛出/捕获错误
- 网络浏览器正在成为“;严格的“;用于Javascript中未定义变量的操作
- 使用window.location时未定义变量
- 传递给数据的未定义变量
- bizzare未定义变量
- JavaScript 中全局范围内存在未定义变量的原因是什么?
- JavaScript onClick 参数表示未定义变量
- 在指令中使用 $scope.$watch 处理未定义变量的替代方法
- 对于循环错误:未捕获的引用错误,未定义变量.怎么了
- JavaScript / YouTube API - 未定义变量 YT
- 未捕获的引用错误:在测试真实性时未定义变量
- 通过使用JavaScript“未定义”(变量),我们可以释放系统内存
- 与未定义变量相关的错误
- Angularjs 控制器中的未定义变量
- 角度解析:未定义变量
- BackboneJS Uncaught ReferenceError:未定义变量
- 使用Underscore JS部分和for循环的未定义变量对象