1

我在 Angular 中有以下代码:

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

当我第一次登录应用程序时它可以工作。也就是说,如果我检查commandsJSON 对象,它包含来自$rootScope.commands.

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

为什么会这样?显然,第一次登录和只刷新页面在行为上是有区别的。

有任何想法吗?

4

1 回答 1

1

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

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

于 2016-07-30T19:52:03.313 回答