angular - 为什么我应该在简单的对象配置上使用 Angular 的依赖注入(inject)?

标签 angular dependency-injection

Angular 文档展示了一个在不注入(inject)类时在构造函数中使用 @inject 注入(inject)值(配置对象)的示例。

https://angular.io/guide/dependency-injection#non-class-dependencies

我能够让它工作,但我不确定我是否理解这个用例的要点。因为它不是一个创建实例的类,它只是一个正在读取的配置对象,为什么我不直接导入它并在需要的地方读取它。无论如何,即使我想将值注入(inject)到构造函数中,我也必须导入该类。

这是否只是为了确保该值在类开始构建时可用,因为它位于构造函数中?

我只是不确定我是否看到了 DI 的值(value),并且觉得我可能错过了一些东西。

最佳答案

DI 主要是关于可测试性。您可以轻松地覆盖测试中的提供程序。
如果直接访问值,则需要修改正在测试的类或组件的代码,以便自定义测试行为。

还有其他优点,例如能够在中心位置(您指定提供程序的位置)配置应用程序,以便针对不同的用例进行自定义。

关于angular - 为什么我应该在简单的对象配置上使用 Angular 的依赖注入(inject)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45965277/

相关文章:

css - 如何在 ng2-smart-table 上显示自定义图标?

angular - 如何删除 Angular 6 中的 dist 文件?

java - 未注入(inject) Android Dagger 2 依赖项

asp.net-mvc - EF、ASP MVC + 依赖注入(inject)。多个并发请求和数据库连接的问题

javascript - Angular 2 测试具有虚假依赖项的组件

angular - 如何在 Angular 2 中创建属性指令并将其绑定(bind)到属性?

javascript - “How to fix ‘NGX Data Table Checkbox Issue In Angular?”

c# - 为什么我的通用服务会收到错误 "Cannot instantiate implementation type"?

c# - 使用 Autofac 将 SignalR IHubContext 注入(inject)服务层

java - 使用 applicationcontext.getbean 与 @configurable 的优势