我开始使用 AngularJS,我正试图围绕依赖注入。具体来说,我试图了解 DI 和使用 RequireJS 声明依赖项之间的区别。
Angular 中的 DI 是否仅适用于在某些 angular.module 上定义的“对象”(工厂、服务、模型)?例如,我可以依赖一些外部库,比如使用 DI 的 jQuery 吗?
一般来说,RequireJS 中的依赖管理和 Angular 中的 DI 之间的区别可以这样表述:
RequireJS 仅在首次需要时才处理加载依赖项(延迟加载),并确保所有依赖项在执行之前都存在,而 Angular DI 允许在运行时轻松更改依赖项,只要它的接口保持不变?
最后,DI 是否总是传递依赖项的实例?每次都是一个新实例,还是一个单例?它可以传递一个我可以实例化自己的“类”定义吗?例如,如果我需要将选项传递给构造函数怎么办?