$stateProvider
.state('index', {
url: "/", // root route
views: {
"lazyLoadView": {
controller: 'AppCtrl', // This view will use AppCtrl loaded below in the resolve
templateUrl: 'partials/main.html'
}
},
resolve: { // Any property in resolve should return a promise and is executed before the view is loaded
loadMyCtrl: ['$ocLazyLoad', function($ocLazyLoad) {
// you can lazy load files for an existing module
return $ocLazyLoad.load('js/AppCtrl.js');
}]
}
})
正好我最近也有这方面的需求。然后了解了下$ocLazyLoad服务。
在app的config阶段配置路由,相应路由给它提供resolve对象。
下面是一个官方例子。
路由在“渲染”(render)之前会执行resolve对象中的这些方法(通常返回的都是promise对象)。
了解不多。之前只是因为工作需要,简单看了下,但现在尚未开始实践。
以下几篇文档地址是从我笔记上copy过来的。希望能对你有所帮助。
http://blog.getelementsbyidea.com/load-a-module-on-demand-with-angularjs/
http://ify.io/lazy-loading-in-angularjs/
http://www.bennadel.com/blog/2554-loading-angularjs-components-with-requirejs-after-application-bootstrap.htm
https://oclazyload.readme.io/docs