2017-08-17 169 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

相关问题