启动和刷新时的Angular$rootScope行为

Angular $rootScope Behavior on Start and on Refresh

本文关键字:rootScope 行为 Angular 刷新 启动      更新时间:2023-09-26

我在Angular中有以下代码:

  $rootScope.commands.forEach(function(element, index, array){
            commands[element] = function() {alert(element + " Test Command!");}
  });

当我第一次登录应用程序时,它就起作用了。也就是说,如果我检查commands JSON对象,它包含来自$rootScope.commands的条目。

刷新页面时出现问题。就在那时,我得到了$rootScope.commands未定义的错误。

为什么会发生这种情况?很明显,第一次登录和刷新页面在行为上是有区别的。

有什么想法吗?

登录时,我假设您正在设置$rootScope.commands。刷新时,您不再调用此登录代码(因为您已经登录)。javascript变量中设置的任何内容都将在页面重新加载时被销毁,并且必须通过初始化函数重置。

我的建议是:添加一些启动代码,使用angular.module('your_module_name').run(),并检查用户是否登录。如果登录了,请重新构建$rootScope.commands