我的Angular应用程序结构如下:
App.js
angular.module('RateRequestApp', [
'RateRequestApp.services',
'RateRequestApp.controllers',
'ui.bootstrap',
'angular-loading-bar',
'textAngular',
'angularFileUpload'
]);
我在不同的页面上使用了不同的HTML文件,但我没有使用
Angular的
$route
,但我仍然想在具有不同 Controller 的所有页面中使用相同的应用程序。如您所见,我正在向应用程序注入(inject)第三方模块。问题是,在某些页面中,我不需要这些模块,如何在不需要它们的地方避免使用它们?
最佳答案
是的,您可以执行以下操作:
var myApp = angular.module('RateRequestApp', [
'RateRequestApp.services',
'RateRequestApp.controllers',
'ui.bootstrap',
'angular-loading-bar'
]);
var lazyModules = ['textAngular', 'angularFileUpload'];
angular.forEach(lazyModules, function(dependency) {
myApp.requires.push(dependency);
});
在这种情况下,您可以有条件地注入(inject)模块。 (但是请注意,在需要某些配置的情况下,某些模块的延迟加载可能无法正常工作。)