中的數組,我們可能有一個不尋常的angular2體系結構,我們在單個頁面上引導多個組件(小部件),而不是處理所有內容的單個應用程序組件。Angular2 Bootstrap Providers vs首先提供組件
我的第一個問題是,以下兩種實現方式是否相同,從我的理解,他們是(請糾正我,如果我誤解的東西):
bootstrap(SomeComponent, [HTTP_PROVIDER, FooService, ServiceNeededByFoo])
這初始化SomeComponent並提出了提供者那裏的三項服務。這樣SomeComponent就可以在它自己的構造函數中解析FooService,並且FooService可以解析ServiceNeededByFoo,因爲它在SomeComponent(父類)中查找它。從我的理解這應該是完全一樣的,FooService接口和ServiceNeededByFoo一個新的實例
bootstrap(SomeComponent)
所以:
如果我定義
providers: [HTTP_PROVIDER, FooService, ServiceNeededByFoo]
內SomeComponent,我可以像這樣初始化在SomeComponent級別創建並與SomeComponent的所有子節點共享,這些子節點也需要FooService。如果相同,是否有任何優先/推薦的方式?
第二個問題就是現在,我怎麼可以在不在同一個層次DI組件共享FooService接口的單一實例:
bootstrap(SomeComponent1, FooService)
bootstrap(SomeComponent2, FooService)
其中FooService接口應該是相同的實例。喜歡的東西:
var foo = new FooService();
foo.expensiveInit();
bootstrap(SomeComponent1, provide(FooService, {instance: foo}))
bootstrap(SomeComponent2, provide(FooService, {instance: foo}))
提供mehods和Provider類現在是rc3的depricates,我還沒有找到替換,因爲代碼中的註釋簡單地說「TODO:improve docs」 – Tom