如何使用角度js中的rootcope将值从一个js文件传递到另一个js文件?
问题描述:
我有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,但没有帮助。请让我知道如果我错过了什么。提前谢谢你。
答
$rootScope.uName1
将在成功获得ajax结果后可用。如果您的docCtrl
控制器在ajax返回结果之前被调用,那么您将得到undefined
使用$ rootScope。$ on和$ rootScope。$ emit来控制器之间进行通信;就我所知,只是向$ rootScope添加了一个对象并不起作用。 –