2014-02-06 24 views
5

我有包括在主要页面模板5使用预编译的角度JS模板,以加快应用程序的启动

<script type="text/ng-template" id="/myMainTemplate.html">...</script> 
<script type="text/ng-template" id="/myTemplatePage2.html">...</script> 
<script type="text/ng-template" id="/myTemplatePage3.html">...</script> 
<script type="text/ng-template" id="/myTemplatePage4.html">...</script> 

然而,我的应用程序需要花费大量的时间来启动一个大角度的应用。

删除模板2/3/4修复它,但当然打破了应用程序,我的猜测是,angularjs花费太多时间来编译5个模板。

是否有预编译angularjs模板的方法,例如使用nodejs或类似的东西(与我们可以使用handlebar编译模板的方法相同)?

如果我没有理解好了$compile指令,该想法是将移动指令$compile(myTemplate)在服务器端,客户端

回答

4

看来我错了里面,有什么需要的时间是不编译模板。浏览器加载所有页面的速度很慢,基本上document.ready事件需要一段时间才能被解雇。

为了解决这个问题,我只包括我的主模板<script type="text/ng-template" id="/myMainTemplate.html">...</script>在页面中,我加载基于该解决方案采用非同步$ HTTP调用其他模板,:https://gist.github.com/vojtajina/3354046

8

看看繁重,html2js任务。

https://github.com/karlgoldstein/grunt-html2js

它把准备串连到您的主应用程序捆绑纯角HTML模板的JavaScript。一旦模板在您的应用程序包中,它们将在Angular的模板缓存中启动,以便它们立即加载。