出于某种奇怪的原因Angular JS has its own module system that is neither AMD nor CommonJS。
我有许多AMD格式的现有模块。我想在Angular应用程序中使用它们。
我想避免重写任何AMD模块。如果可能的话,我也想避免使用Angular自己的模块系统。
使用Angular时是否可以使用AMD模块?是否有可能避免使用Angular的自定义模块系统?
答案 0 :(得分:2)
你需要以“Angular方式”定义Angular组件(例如angular.module('yourApp')。directive('someDirective',...)),但你当然可以使用AMD来包装Angular组件和用于将非角度组件拉入Angular。查看this seed project。
答案 1 :(得分:2)
您不能用AMD定义替换Angular的模块定义。您现在必须将您的Angular代码包装在AMD定义中。
另一件值得注意的事情是目前没有真正的“延迟加载”模块。您最终将需要在主角度模块定义中使用您将在应用程序中使用的所有角度模块,因此使用AMD的好处目前是有限的。
开发团队表示他们将来会支持延迟加载,这是现在将文件包装到AMD中的唯一原因。