AngularJS需要按需模块

时间:2015-11-11 20:23:23

标签: angularjs module dependencies lazy-loading

是否可以按需加载lazy和include模块以满足其他模块的需求?这样的事情:

var app=angular.module('myApp',[]);
app.controller('myController',['$scope',function($scope){
    $scope.btnClick=function(){    
       (function(d,s,id){
           var js, fjs= d.getElementsByTagName(s)[0];
           if(d.getElementById(id)) return;
           js= d.createElement(s); js.id=id;
           js.onload=function(){
               // do something to make myApp dependent on anotherModule,
               //like if it were loaded initially: myApp=angular.module('myApp',['anotherModule']);
           };
           js.src='/js/anotherModule.js';
           fjs.parentNode.insertBefore(js,fjs);
        }(document,'script','my_id'));
    }
}]);

我想使用'anotherModule' $scope.btnClick()上的指令触发。

2 个答案:

答案 0 :(得分:0)

Angular 1中没有内置功能。<​​/ p>

然而oc-LazyLoad实现了这一点。

答案 1 :(得分:0)

除非您的模块非常大,否则我建议不要延迟加载,因为请求很昂贵。加载一个大文件比加载许多小文件更快

如果你关注性能,你应该考虑首先通过连接/缩小/ uglification进行优化

有关优化网站的良好资源:https://developer.yahoo.com/performance/rules.html