2016-05-18 5 views
-2

私はloginCtrl.jsというファイルに次のような指示があり、vm.userEmailの値を保持する$ rootScopeを作成できません。

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 == '[email protected]') { 
     data = [1,2,3,4] 
    } else { 
     data = [5,6,7,8] 
    } 

任意のアイデア、提案や修正は歓迎されている。)第二部、あなたのコードの試みのために

+0

あなたは '$ rootScope'を上書きしようとしていますか? – yarons

+0

これを上書きすることで値を保持できるかどうかわかりませんが、可能であれば、その方法を教えてください。または私の解決策を働かせる方法の他のアイデア。 –

+0

anglejsで定義された変数$ rootScopeをオーバーライドすることはできません。その値をオーバーライドすると異常な動作が発生します。ですから、 '$ rootScope.newVal'の中に変数を作成して使用するだけの変数が必要な場合は、 – dreamweiver

答えて

1

の$ rootscopeは、アプリケーションコンテキストのようなものです。したがって、アプリケーションコンテキストに新しい価値を加えることができます。以下はあなたの作業コードです。 app.controller( 'LoginCtrl'、関数($タイムアウトは、$ Q、$ログ、$ rootScope/$ AUTH /、$場所、$ mdToast) {

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

}})。

これで、アプリケーションのどこからでもread $ rootScope.userEmailを使用できます。

($ rootScope.userEmail == '[email protected]')であれば {

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

代わりの

$rootScope = someValue; 

使用

$rootScope.someValue= someValue; 

ます0時に変更を監視する必要があります

のようなもの:

$rootScope.$watch('$rootScope.someValue', function(newValue) { 
    if (newValue='[email protected]') { 
     data = [1,2,3,4] 
    } 
}); 
+0

動作しませんでした。私が試した次 app.controller( 'LoginCtrl'、関数($タイムアウトは、$ Q、$ログ、$ rootScope/* $のAUTH * /、$場所、$ mdToast){ VARのVM =この; VM .loginMessage = ''; vm.login =機能(){$ のauth.login({ $ rootScope.username:vm.userEmail、 パスワード:vm.userPassword }) は、その後、私は戻って私のコードを試してみましたが、 –

+0

@AlejandroRamos:この '$ rootScope.username'にアクセスしようとしていますか? – dreamweiver

+0

ありがとうございます。私は$ rootScope.usernameにsiteCtrl.jsという別のファイルにアクセスしたいと思っています。これを条件付きにするには: if($ rootScope == 'y_y @ hotmail。com '){ data = [1,2,3,4] } –

関連する問題