【发布时间】:2015-03-13 19:08:11
【问题描述】:
我是Angular.JS 的新手,当从ng-include 加载的内容请求它时,我正在尝试动态加载控制器文件,我这样做是因为我正在构建的页面将有多个控制器和由于它的大小,我宁愿让初始页面快速加载,我不确定这样做,我想我可以通过这样做来实现它:
<script type="text/javascript" src="js/controllers/controllerFile.js"></script>
里面加载的内容。
控制器文件是这样的
app.controller('parseQuery', function()
{
this.object = 'Enter query and parse.';
this.parse = function()
{
this.object = JSON.stringify(window.getParam(this.query), null, '\t');
};
this.getURL = function()
{
this.query = document.URL;
this.parse();
};
});
html 文件使用ng-controller 调用控制器,因为它应该可以工作。但是加载内容时,javascript返回错误Argument 'parseQuery' is not a,所以没有任何效果,如何在应用程序启动后加载控制器文件?
【问题讨论】:
-
Angular 在引导后不能延迟加载控制器(或服务,或其他任何有角度的东西)。无论如何开箱即用。你可以看看github.com/ocombe/ocLazyLoad 或者等待支持延迟加载的Angular 2。
-
@jlowcs 所以我别无选择,只能在初始页面中加载所有控制器?
-
我很确定你的总代码大小比 angular.js 本身要小得多,必须确定加载 - 那有什么意义呢?
-
@nosthertus 是的。虽然,特别是如果缩小和压缩,你的代码不应该很重。大型应用程序通常需要延迟加载。
标签: javascript angularjs