AngularJS 进阶(一) 按需加载controller js (转帖)
我们在AngularJS中可以根据网址不同直接切换view,动态加载网页模板,但是控制模板的控制器需要先定义好才可以,不能和网页模板同时加载,这样就造成整个网站的JS都要先加载完成。
requireJS是大家第一个想到的东西,但是体积有点大,github上就有个人用它写了Angular的动态加载controller模块,是通过js promise异步编程技术实现的,最后的解决很简单~~
首先在$routeProvider里面加resolve属性
$routeProvider. when(‘/phones‘, { templateUrl: ‘partials/phone-list.html‘, controller: PhoneListCtrl, resolve: PhoneListCtrl.resolve})然后
function PhoneListCtrl($scope) { //本身不用管,该怎么弄怎么弄 } PhoneListCtrl.resolve = { delay: function($q) { var delay = $q.defer(), load = function(){ $.getScript(‘/js/xxxxx.js‘,function(){ delay.resolve(); }); }; load(); return delay.promise; } }
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。