AngularJS 按需要求模块
AngularJS require module on-demand
是否可以延迟加载并将模块包含到另一个模块的需求中?类似的东西:
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'));
}
}]);
我想在 $scope.btnClick()
被触发时使用来自 'anotherModule'
的指令。
Angular1 中没有内置功能。
然而 oc-LazyLoad 实现了这一点。
除非你的模块非常大,否则我建议不要延迟加载,因为请求很昂贵。加载一个大文件比加载多个小文件更快
如果您担心性能,您应该考虑首先通过 concatenation/minification/uglification
进行优化
这里有一个关于优化网站的好资源:https://developer.yahoo.com/performance/rules.html
是否可以延迟加载并将模块包含到另一个模块的需求中?类似的东西:
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'));
}
}]);
我想在 $scope.btnClick()
被触发时使用来自 'anotherModule'
的指令。
Angular1 中没有内置功能。
然而 oc-LazyLoad 实现了这一点。
除非你的模块非常大,否则我建议不要延迟加载,因为请求很昂贵。加载一个大文件比加载多个小文件更快
如果您担心性能,您应该考虑首先通过 concatenation/minification/uglification
进行优化这里有一个关于优化网站的好资源:https://developer.yahoo.com/performance/rules.html