javascript - 在 AngularJS 应用程序中有条件地注入(inject)模块

标签 javascript angularjs

我的 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)模块。 (但请注意,在需要某些配置的情况下,某些模块的延迟加载可能无法正常工作。)

关于javascript - 在 AngularJS 应用程序中有条件地注入(inject)模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27687059/

相关文章:

javascript - 跨网站缓存Javascript库

angularjs - 服务器/客户端的 Git 架构不错吗?

javascript - 如何仅在使用 angularJS 单击按钮时显示输入字段?

javascript - React 实时更新输入文本表单

angularjs - 如何在没有jshint警告的情况下以 Angular 定义自定义程序包?

javascript - Angular 算法 : stop ngFileUpload double looping?

javascript - 在 javascript 中运行 "background task"

angularjs - 如何存储用户名并使其随处可见?

Javascript 变量显示未定义

javascript - Node.js xml2js 解析器未定义