Bootstrap 中的 Angular2 服务注入

Angular2 Services Injection in Bootstrap

谁能给我解释一下

之间的区别
bootstrap(MyApp, [provide(Service1, { useClass: Service1})]);

bootstrap(MyApp, [Service1]);

其实没什么区别。

使用这个版本

bootstrap(MyApp, [provide(Service1, { useClass: Service1})]);

只有当 类 不同时才有意义,比如

bootstrap(MyApp, [provide(XHRBackend, { useClass: MockBackend})]);

在请求XHRBackend时传递MockBackend(是构造函数参数的类型。

constructor(private backend:XHRBackend) {}

会得到一个 MockBackend 实例传入。

如果您只想在请求 Service1 时传递 Service1

bootstrap(MyApp, [Service1]);

会做。

一模一样。当提供者使用的令牌是 class 本身时,您可以使用它。如果您想在提供商令牌后面提供其他内容,您可以将 provide 函数与 useClassuseValueuseExistinguseFactory.[=19 一起使用=]

以下是一些您可能感兴趣的示例:

  • Angular 2 - How to get Observable.throw globally

您还可以查看 Provider class:

的文档