我在Angular中有以下代码:
$rootScope.commands.forEach(function(element, index, array){
commands[element] = function() {alert(element + " Test Command!");}
});
我第一次登录应用程序时有效。也就是说,如果我检查commands
JSON对象,它包含来自$rootScope.commands
的条目。
刷新页面时出现问题。然后我得到$rootScope.commands
未定义的错误。
为什么会这样?显然,第一次登录和刷新页面之间的行为存在差异。
有什么想法吗?
答案 0 :(得分:1)
当您登录时,我假设您正在设置$rootScope.commands
。当您刷新时,您不再再调用此登录代码(因为您已经登录)。任何在javascript变量中设置的东西都会在页面重新加载时被破坏,并且必须通过初始化函数重置。
我的建议:使用angular.module('your_module_name').run()
添加一些启动代码,然后检查用户是否已登录。如果是,请再次构建$rootScope.commands
。