Bat*_*man 4 javascript labjs angularjs
加载我的Angular应用程序时,我一直收到此错误.在Chrome中,一对夫妇刷新,我的应用程序将运行,但IE和FF是不行.
该错误将我链接到此错误页面,但我真的不明白它的含义.
我正在使用LabsJS加载我的应用程序,包括控制器和服务.
// spAppLoader.js
$LAB
.script("../js/app.js").wait()
.script("../js/controllers/userCtrl.js")
.script("../js/controllers/groupCtrl.js")
.script("../js/controllers/siteCtrl.js")
.script("../js/services/userServices.js")
.script("../js/services/groupServices.js")
.script("../js/services/siteServices.js")
Run Code Online (Sandbox Code Playgroud)
标记:
<div id="mdContainer" ng-app="spApp" ng-cloak>
...
</div>
<script type="text/javascript" src="../js/spAppLoader.js"></script>
Run Code Online (Sandbox Code Playgroud)
我想发布更多的代码,但我不知道从哪里开始,而角度一切都在多个文件中.我通过github上传了它.
您应该手动引导您的应用程序,因为您使用异步脚本加载器:
$LAB
.script("../js/app.js").wait()
.script("../js/controllers/userCtrl.js")
.script("../js/controllers/groupCtrl.js")
.script("../js/controllers/siteCtrl.js")
.script("../js/services/userServices.js")
.script("../js/services/groupServices.js")
.script("../js/services/siteServices.js")
.wait(function(){
var root = document.getElementById('mdContainer')
angular.bootstrap(root ,['spApp']);
})
Run Code Online (Sandbox Code Playgroud)
angular.bootstrap(root ,['spApp']);是相同的,<div id="mdContainer" ng-app="spApp">只有最后一个会在DOMContentLoaded event发生时自动初始化您的应用程序.
使用脚本加载器时,DOMContentLoaded event可能会在加载所有脚本之前发生,因此您必须等待所有模块脚本 ,然后手动引导应用程序.
在您的情况下,chrome可能会缓存您的脚本,因此在DOMContentLoaded event完成所有脚本加载后很少刷新.
来自文档:
自动初始化
Angular在DOMContentLoaded事件时自动初始化,或者在评估angular.js脚本时,如果此时document.readyState设置为'complete'.此时,Angular会查找指定应用程序根目录的ng-app指令...
手动初始化
如果需要对初始化过程有更多控制权,可以使用手动引导方法.您需要执行此操作的示例包括使用脚本加载器或在Angular编译页面之前执行操作的需要.
| 归档时间: |
|
| 查看次数: |
7264 次 |
| 最近记录: |