【发布时间】:2017-08-17 18:19:11
【问题描述】:
我有一个 js 文件,可以说:login.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.$on 和 $rootScope.$emit 在控制器之间进行通信;据我所知,刚刚向 $rootScope 添加了一个对象不起作用。
标签: angularjs controller session-storage angularjs-rootscope