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
函数与 useClass
、useValue
、useExisting
或 useFactory
.[=19 一起使用=]
以下是一些您可能感兴趣的示例:
- Angular 2 - How to get Observable.throw globally
您还可以查看 Provider
class:
的文档
谁能给我解释一下
之间的区别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
函数与 useClass
、useValue
、useExisting
或 useFactory
.[=19 一起使用=]
以下是一些您可能感兴趣的示例:
- Angular 2 - How to get Observable.throw globally
您还可以查看 Provider
class: