1、在lib目录中添加 script.js 文件,并在index.html其他<script>之前引用之:
<script src="lib/script.js"></script>
2、在app.js中增加全局函数LazyLoadTemplate()和LazyLoadJs():
function LazyLoadTemplate(file) {
   return function () {
      return file;
   }
}
function LazyLoadJs(file) {
   return {
      deps: function ($q, $rootScope) {
         var d = $q.defer();
         $script(file, function () {
            $rootScope.$apply(function () {
               d.resolve();
            })
         });
         return d.promise;
      }
   }
}
3、在app.config()函数中开始处增加:
var app = angular.module("app");
app.controllerProvider = $controllerProvider;  // 主要是这个
app.compileProvider = $compileProvider;        // 以下这两个备用
app.filterProvider = $filterProvider;
注意,要在config()的参数列表中增加相应的$controllerProvider、$compileProvider 和 $filterProvider。
4、在路由表中修改需要动态加载的状态路由配置,例如:
$stateProvider.state('page1', {
   url: '/page1',
   templateUrl: LazyLoadTemplate('page1.html'),
   controller: 'Page1Ctrl',
   resolve: LazyLoadJs("page1.js")
});
提示:
(1) 把 templateUrl属性的值改为调用函数 LazyLoadTemplate()。
(2) 增加 resolve属性,其值为调用函数LazyLoadJs()。
5、在控制器所在JS文件中,修改控制器的定义方式:
angular.module('app').controllerProvider.register("Page1Ctrl", function ($scope) {
   $scope.title = "Page1";
});
提示:把原来的 controller() 函数调用改成  controllerProvider.register()。
6、从index.html中去掉对该控制器所在JS文件的引用,例如:
<!--<script src="page1.js"></script>-->
参考:
 
                    
                     
                    
                 
                    
                 
 
         
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号