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

标签 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 未定义的错误。

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

有什么想法吗?

最佳答案

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

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

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

相关文章:

javascript - 将弹出窗口中的图像添加到父页面

javascript - 将日期值转换为时间戳 - 发布请求 - Ember.js

javascript - 期望使用特定长度的数组调用 spy 函数

javascript - Angularjs 绑定(bind) HTML 货币代码

javascript - 如何在折叠时为 div 设置图像然后如果我单击展开需要显示内容?

html - 如何在组件 View 中访问根作用域

javascript - AngularJS : Hide popup from child controller (popup content)

javascript - Angularjs 在 ng-repeat 中找到最后一个可见元素

angularjs - $rootscope 值在 Controller 中未定义

angularjs - 如何访问 angularjs 中的 $rootscope 变量?