2017-08-17 166 views
0

我有js文件可以說:在那裏我已經定義了根範圍變量並分配一定的價值,像這樣login.js:如何使用角度js中的rootcope將值從一個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

使用$ rootScope。$ on和$ rootScope。$ emit來控制器之間進行通信;就我所知,只是向$ rootScope添加了一個對象並不起作用。 –

回答

0

$rootScope.uName1將在成功獲得ajax結果後可用。如果您的docCtrl控制器在ajax返回結果之前被調用,那麼您將得到undefined

相關問題