Javascript $rootScope变量未定义?

Javascript $rootScope变量未定义?,javascript,angularjs,Javascript,Angularjs,因此,我试图在用户登录后(在onLogin函数运行后)在NavCtrl中获取一个对象($rootScope.User) 但是,我做错了什么,我不知道该怎么解决它。我认为它可能在得到值之前读取代码。但是,我不是很确定。如果有人能帮我,那太棒了 谢谢 .controller('LoginCtrl', function (Backand, $state, $rootScope, LoginService, $ionicPopup, dataService) { var login = thi

因此,我试图在用户登录后(在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();
});

这是个打字错误。从
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?如果是的话,那么是的,您在设置值之前就已经阅读了。

在我发布问题后,我实际上已经纠正了这个拼写错误,但它仍然不起作用。。。