出于某种奇怪的原因,Angular JS 有自己的模块系统,它既不是 AMD 也不是 CommonJS。
我有许多 AMD 格式的现有模块。我想在 Angular 应用程序中使用它们。
我想避免重写任何 AMD 模块。如果可能的话,我也想避免使用 Angular 自己的模块系统。
使用 Angular 时是否可以使用 AMD 模块?是否可以避免 Angular 的自定义模块系统?
出于某种奇怪的原因,Angular JS 有自己的模块系统,它既不是 AMD 也不是 CommonJS。
我有许多 AMD 格式的现有模块。我想在 Angular 应用程序中使用它们。
我想避免重写任何 AMD 模块。如果可能的话,我也想避免使用 Angular 自己的模块系统。
使用 Angular 时是否可以使用 AMD 模块?是否可以避免 Angular 的自定义模块系统?
您确实需要以“Angular 方式”定义 Angular 组件(例如 angular.module('yourApp').directive('someDirective', ...)),但您当然可以使用 AMD 来包装 Angular 组件和将非 Angular 组件引入 Angular。看看这个种子项目。
你不能用 AMD 定义替换 Angular 的模块定义。你现在必须在 AMD 定义中包装你的 Angular 代码。
另一件需要注意的是,目前还没有真正的“延迟加载”模块的方法。您最终必须在主角度模块定义中要求您将在应用程序中使用的所有角度模块,因此目前使用 AMD 的好处是有限的。
开发团队表示他们将在未来某个时候支持延迟加载,这是现在在 AMD 中打包文件的唯一原因。