【发布时间】:2017-05-05 15:04:01
【问题描述】:
如何使用 ReflectiveInjector 实例化 Http 实例?
Http 有一个构造函数,它接受一个 ConnectionBackend 和一个 RequestOptions。但是 ConnectionBackend 是一个抽象类,那么注入器到底是如何知道用什么来解决它的呢?任何有关解决 RequestOptions 的提示也将不胜感激。
在 http.d.ts 中,Http 既没有使用 @Component 也没有使用 @Injectable 进行装饰,根据 Angular 文档,这对于完全可注入的类型来说是必需的。 Http 确实是可注入的,但似乎没有任何基础设施可以做到这一点。
【问题讨论】:
-
“文档和现实之间似乎有一点差距。”欢迎来到现代前端开发的精彩世界。 :)
-
特别是stackoverflow.com/a/39503251/3001761。 “ConnectionBackend 是一个抽象类,那么注入器到底是如何知道用什么来解决它的?” - 你告诉它,
{ provide: ... }就是这样做的。 -
但是通常你不需要告诉 Angular 需要什么类型的 ConnectionBackend 来实例化一个 Http 实例。您只需将一个类标记为 @Injectable 并为其构造函数提供一个“私有 http:Http”参数,它就会自行解决。所以问题仍然存在,它通常如何自己解决这个问题?
标签: angular