开始和刷新时的Angular $ rootScope行为

时间:2016-07-30 19:45:46

标签: javascript angularjs rootscope angularjs-rootscope

我在Angular中有以下代码:

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

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

刷新页面时出现问题。然后我得到$rootScope.commands未定义的错误。

为什么会这样?显然,第一次登录和刷新页面之间的行为存在差异。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

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

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