2013-05-06 53 views
0

嗨我有一个引导角JS的问题。角JS自举应用程序

这是在Django模板我的HTML文档

<html> 
... 
<body> 
.... at the end .... 
<script src="//cdnjs.cloudflare.com/ajax/libs/json2/20121008/json2.js"></script> 
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.0.6/angular.min.js"></script> 
<script src="//cdnjs.cloudflare.com/ajax/libs/underscore.js/1.4.4/underscore-min.js"></script> 


<script type="text/javascript" src="{% static 'js/ui/transition.js' %}"></script> 
<script type="text/javascript" src="{% static 'js/ui/collapse.js' %}"></script> 
<script type="text/javascript" src="{% static 'js/ui/accordion.js' %}"></script> 
<script type="text/javascript" src="{% static 'js/ui/tabs.js' %}"></script> 
<script type="text/javascript" src="{% static 'js/ui/dialog.js' %}"></script>  
<script type="text/javascript" src="{% static 'js/ui/modal.js' %}"></script> 
<script type="text/javascript" src="{% static 'js/ui/alert.js' %}"></script> 
<script type="text/javascript" src="{% static 'js/ui/validated.js' %}"></script> 
<script type="text/javascript" src="{% static 'js/ui/fb.js' %}"></script> 
<script type="text/javascript" src="{% static 'js/app/base.js' %}"></script> 


<script> 
angular.element(document).ready(function() { 
try{  angular.bootstrap(document, ['app.base']); 

}catch(e){alert(e)} 
}); 
</script> 

(我知道有很多UI脚本......不过这不是重点)

编辑 我认为问题是,我正在运行django的dev服务器,它不能很好地处理并发请求。显然,它有时会丢失连接,从而导致浏览器不加载文件(随机)。 Chrome和其他浏览器都观察到此问题。

回答

1

一般来说,当Angular抛出一个“no module”错误时,这意味着该模块有错误。它与它们加载的顺序无关。我会在文件上运行jsLint并查看它是否编译。

您是否需要手动引导?如果您只加载一个应用程序,则可以将ng-app指令附加到任何HTML元素。我不确定你可以像bootstrapping一样使用try-catch。我所做的是这样的:

$.when(angular.bootstrap(document.getElementById('my-div'), ['my-app'])) 
    .done(function() { 
     console.log("my-app has been bootstrapped to my-div"); 
    }); 
+0

那么,但其他浏览器,如铬工作正常,但。由于某些原因,自动引导失败,因此我只尝试手动引导。就像我之前说的,这个错误只发生在我进行硬刷新时,这很奇怪。为什么angularjs.org使用require.js来加载模块? – Lucas 2013-05-06 18:11:11

+0

自动bootstrapping(和所有bootstrapping)失败,因为ui.accordion模块正在做一些IE8不喜欢的事情。你可以在没有ui.accordion模块的情况下加载它吗? – Sharondio 2013-05-06 21:00:58