$ rootScope无法正常工作

时间:2016-05-18 10:59:15

标签: javascript angularjs

我在一个名为loginCtrl.js的文件中有以下指令,我无法使$ rootScope保存vm.userEmail的值。

app.controller('LoginCtrl', function($timeout, $q, $log, $rootScope /*$auth*/,   $location, $mdToast) {
    var vm = this;
    vm.loginMessage = '';
    vm.login = function(){
        $auth.login({
            $rootScope: vm.userEmail,
            password: vm.userPassword
    })  
  }
});  
每当这个特定用户连接时,$ rootScope都会帮助我处理这个条件。

if ($rootScope == 'y_y@hotmail.com') {
        data = [1,2,3,4]
    } else {
        data = [5,6,7,8]
    }

欢迎任何想法,建议或更正;)

2 个答案:

答案 0 :(得分:1)

而不是

$rootScope = someValue;

使用

$rootScope.someValue= someValue;

对于第二部分,您的代码会尝试:

您应该在$rootSchope.someValue

上观看更改

类似的东西:

$rootScope.$watch('$rootScope.someValue', function(newValue) {
    if (newValue='y_y@hotmail.com') {
        data = [1,2,3,4]
    }
});

答案 1 :(得分:1)

$ rootscope就像一个应用程序上下文。因此,您可以向应用程序上下文添加新值。以下是您的工作代码。 app.controller('LoginCtrl',函数($ timeout,$ q,$ log,$ rootScope / $ auth /,$ location,$ mdToast) {

var vm = this;
vm.loginMessage = '';
vm.login = function(){
    $auth.login({
        $rootScope.userEmail : vm.userEmail,
        password: vm.userPassword
})  

} });

现在,您可以在应用程序的任何位置使用read $ rootScope.userEmail。

if($ rootScope.userEmail =='y_y@hotmail.com') {

    data = [1,2,3,4]
} else {
    data = [5,6,7,8]`enter code here`
}