相关疑难解决方法(0)

AngularJS中的全局变量

我有一个问题,我在控制器中的范围初始化变量.然后在用户登录时在另一个控制器中进行更改.此变量用于控制导航栏等内容,并根据用户类型限制对站点部分的访问,因此保持其值非常重要.它的问题在于初始化它的控制器,通过角度再次调用,然后将变量重置为其初始值.

我认为这不是声明和初始化全局变量的正确方法,它不是真正的全局变量,所以我的问题是什么是正确的方法,是否有任何关于使用当前版本的角度工作的好例子?

global-variables angularjs

344
推荐指数
7
解决办法
44万
查看次数

AngularJs:如何访问控制器之外的全局变量?

我试图通过正常函数访问全局变量,是否可能?

我使用$ rootScope设置了一些var,我试图通过回调函数来访问它.从控制器调用此回调.我不想传递$rootScope那个回调.

有没有办法访问$rootScope.var

如果可能,我愿意使用服务.

请建议.

谢谢

我试图访问rootScope如下:

    function fbLandingCtrl($scope, $rootScope) {
    $rootScope.isFBLoggedin = false;
    $scope.login = function() {
       console.log( $rootScope.isFBLoggedin);
       fbHelper.login(getUserInfo);
      };

      function getUserInfo(){
          fbHelper.getUserInfo(updateStatus);
      }
      function updateStatus(userInfo){
          $rootScope.isFBLoggedin = true;
          console.log( $rootScope.isFBLoggedin);
      }
  }
Run Code Online (Sandbox Code Playgroud)

我的服务如下:

    myapp.factory('FBService', [ '$rootScope', function ($rootScope) {
    $rootScope.isFBLoggedin = false; // global variable
    $rootScope.userName = null;
    $rootScope.userEmail = null;

    return {

        getStatus: function() {
            return $rootScope.isFBLoggedin;
        },
        setStatus: function(status) {
            console.log("Status:"+status);
            return $rootScope.isFBLoggedin = status;
        }
       };
}]);
Run Code Online (Sandbox Code Playgroud)

它在updateStatus fn下显示isFBLoggedin为true但它没有反映在视图上 …

javascript angularjs

6
推荐指数
1
解决办法
3万
查看次数

标签 统计

angularjs ×2

global-variables ×1

javascript ×1