【发布时间】:2016-03-03 17:35:37
【问题描述】:
我即将使用multi-provider 来导出我的依赖项及其自身的依赖项,以便它们可以立即注入到组件中。
对于一个组件
import {Component} from 'angular2/core';
import { FOO_PROVIDERS } from './foo';
@Component({
selector: 'app',
providers: [FOO_PROVIDERS]
})
export class App {}
import {Inject, Injectable, provide} from 'angular2/core';
import {Http, HTTP_PROVIDERS} from 'angular2/http';
export class Foo {
constructor(@Inject(Http) http) {}
}
export const FOO_PROVIDERS = [
provide(Foo, { useClass: Foo, multi: true }),
provide(Foo, { useValue: HTTP_PROVIDERS, multi: true })
];
会导致
没有 Http 提供者! (App -> Foo -> Http)
还有this
import {Inject, provide} from 'angular2/core';
import {Http, HTTP_PROVIDERS} from 'angular2/http';
class Foo {
constructor(@Inject(Http) http) {}
}
export const FOO_PROVIDERS = [Foo, HTTP_PROVIDERS];
会正常工作,而我希望他们能做类似的工作。
在这种情况下是否可以正确使用多提供者?
【问题讨论】:
-
作为一个注释:我有一个挂断 - 确保在定义类 FOO 之后放置 FOO_PROVIDERS,而不是之前
-
@Tucker 没错,类没有提升。
标签: javascript typescript angular angular2-services