我在 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
。
关于javascript - 启动和刷新时的 Angular $rootScope 行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38677875/