0

は言うことができます:私はこのようなルートスコープの変数を定義し、いくつかの値が、何かが割り当てられているlogin.js:角度jsでrootscopeを使用して、1つのjsファイルから別のjsファイルに値を渡すにはどうすればよいですか?私は、JSファイルを持っている

mainApp.controller('loginController',function($sessionStorage, $scope, $location, $window, $http, $rootScope) { 

     $scope.login = function() { 



      $http.get('http://localhost:8080/user/').then(function(response) { 
       $scope.users = response.data; 

       var len=$scope.users.length; 
       var i=0; 
       var flag="false"; 
      for(i=0;i<len;i++) 
       { 
      if (($scope.login.userName == $scope.users[i].username) && ($scope.login.password== $scope.users[i].password)) 
       { 

       $rootScope.uName1 = $scope.users[i].username; 
       $sessionStorage.id=$scope.users[i].id; 
       $sessionStorage.uName=$scope.users[i].username; 


       alert($scope.uName); 
       alert($scope.login.userName); 
       alert($rootScope.uName1); 

        //$cookieStore.put('id',$scope.users[i].id); 
       // alert("id="+$cookieStore.get('id')); 
        flag="true"; 
        break; 
       } 
       } 

は、ここで私は「uName1」の値を取得することができています。今、私は別のjsファイルに同じ変数にアクセスしようとしています。ここでは「document.js」

app.controller("docCtrl",function($sessionStorage, $scope, $location, $window, $http, $rootScope){ 
     $scope.id=$sessionStorage.id; 

     alert($rootScope.uName1); 

が、私は警告で未定義取得しています。私もsessionStorageを使用してみましたが、助けはありませんでした。もし私が何かを忘れてしまったら教えてください。事前にありがとうございます。

+0

$ rootと$ rootScopeを使用してコントローラ間の通信を行います。 $ rootScopeにオブジェクトを追加するだけで、私が知る限り動作しません。 –

答えて

0

$rootScope.uName1は、ajaxの結果が正常に取得された後に利用可能になります。あなたのdocCtrlコントローラがAjax戻り値の前に呼び出されると、未定義になります

関連する問題