javascript - Angular Controller 偶尔不加载

标签 javascript angularjs requirejs angularjs-scope

我有一个使用 RequireJS 和 Angular 设置的网站,但在看似随机的时刻,它会决定要么不加载部分 Javascript,要么不加载 Angular 代码的数据绑定(bind)部分。

相关页面上有几个不同的组件,它们有自己的 Angular Controller 。大约 90% 的时间里一切都加载得很好,但有时会发生一些阻止数据绑定(bind)的事情(尖括号可见,ng-hide 不起作用,...)。此外,Chrome 开发工具中的“网络”选项卡显示没有正在加载的文件,尽管它们列在“源”中。我不知道这是否相关。我在控制台中根本没有收到任何错误。

在 JS 控制台中进行挖掘,我发现确实存在一个有问题的损坏 Controller ( = 我使用 angular.element(...).scope() 获得一个对象)但是当我尝试访问其属性之一时,它们要么是未定义的,要么是我在所有 Controller 中使用的 init() 函数,它返回父 Controller 的函数。

什么可能导致 Controller 被加载但其范围变量在看似随机的时间未定义?

编辑: 我发现重现此问题而不在控制台中显示错误的唯一方法是将 Controller 初始化为空函数。这会在控制台中产生类似的作用域行为,但不会导致显示 Angular 花括号。我会接受任何引导我找到问题原因或可行解决方法的线索。

最佳答案

似乎 RequireJS 有时加载所有内容的速度足够快,以便在 DOM 完全加载之前执行 angular.bootstrap 调用。这导致对已加载的内容进行 Angular 处理并忽略接下来的内容。因此我添加了一个 domReady对设置的要求,所以当我知道整个页面都会在那里时,我只引导 Angular 。由于很难确定,我只能希望这是原因,并且我们不会再次看到这个问题。

关于javascript - Angular Controller 偶尔不加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28897315/

相关文章:

javascript - 使用 AngularJS 交换 JavaScript 数组中的行/索引

angularjs - 自定义指令中的 ng-repeat : Syntax Error: Token '$index' is unexpected

javascript - 使用 requirejs 并尝试将 javascript 优化为 vendor 文件和应用程序文件

requirejs - 使用r.js打包一个使用 'text'加载 View 的SPA应用程序

javascript - React 路由器从子类更新父状态

javascript - 使用 jquery 更改表格单元格的背景颜色

javascript - 如何检查元素类子项是否具有特定类

javascript - 如何在angularjs中刷新和重新绑定(bind)数据库中的数据

javascript - Angular 过滤器 : re-apply on object property

json - 如何从单独的 js 文件中获取 json 数据到主 js 文件