AngularJS初始路由控制器未加载.后续的都可以
AngularJS initial route controller not loaded. Subsequent ones are fine
我有一个HTML5 pushState应用程序。由于某种原因,当我第一次加载时,负责我初始命中的路由的控制器没有加载。如果我四处点击,一切都很好。
我不太清楚为什么会发生这种情况,可以在这里查看演示:http://osumo.paas.allizom.org
这以前还可以。我今天在一些和$routeProvider
无关的组件上做了一些工作,结果它就坏了。
有人有什么想法吗?
谢谢。
因此,要回答这个问题,它相当。。有趣的问题实际上来自这一行:https://github.com/shuhaowu/osumo/commit/c539d8048696152ad75f13a6d965160381b89a21#L2L22
这样做的原因实际上很合乎逻辑,尽管要弄清楚这是一个很大的痛苦。基本上,我在做我不该做的事情(就像经常发生的那样)。
因此,首先,代码是在初始化服务时设置区域设置。这本身并没有什么大不了的,因为我们希望将区域设置为navigator.language
。此代码位于此处:https://github.com/shuhaowu/osumo/blob/c539d8048696152ad75f13a6d965160381b89a21/static/js/develop/services/appservice.js#L165
当调用它时,会触发一个事件,该事件将导致一堆指令更改其文本。再说一遍,这没什么大不了的。https://github.com/shuhaowu/osumo/blob/c539d8048696152ad75f13a6d965160381b89a21/static/js/vendors/l10n.js#L23
麻烦来了。有问题的代码版本包括$rootScope.$$phase || $rootScope.$apply()
,因为在设计库时,假设setLocale可以在有角度的世界之外调用,它希望有点神奇,这样当事件触发时,一切都会正常工作。虽然我不能确定Angular中到底发生了什么,但我的猜测是$scope.$$phase
在这一点上没有设置,因为我们仍在初始化不同的组件。在这里调用$apply
导致angular开始应用于页面,这导致页面永远不会加载。
经验教训:不要做傻事。
- 我们可以加载动态角度对话框吗
- Wooccommerce所有JS和Jquery元素都未加载
- Google Map JS API-加载地图分幅,但所有图像(标记、缩放控制等)都不加载;t负载2分钟
- Android WebView:在javascript中,有没有一种方法可以加载另一个javascript文件,并为堆栈
- 如何使用Javascript检查脚本是否可以加载
- 如何告诉三个Javascript对象所有内容都已加载
- 如何确保网页或安卓应用程序中的所有css和js文件都已加载
- 脚本每次都无法加载
- Rails jquery 在任何情况下都无法加载
- 检查是否可以加载图像
- 当所有 HTML 都已加载(而不是图像)时运行 JS 代码
- 从JQuery返回'获取'当所有图像都已加载时
- 当用户点击facebook共享缩略图时,我可以加载一个iframe吗
- jQuery Mobile添加了我可以加载的文本't拆卸
- 是否可以加载图像,在内存中缩放它并将其分配为背景图像的 uri
- 是否可以加载一些requirejs“;模块“;s稍后
- 有没有任何方法可以加载和操作外部url
- 是否可以加载外部页面
- SoundJS如何/可以加载其他预加载程序加载的声音文件(如Pixi.Loader.Loader())
- 在jQuery中预先缓存不同数量的图像,如果所有图像都已加载,则进行回调