在angular1中,我們經常使用工廠來注入類,而不是實例。在angular2中,我可以做同樣的事情:使用DI進行類注入有什麼意義嗎
{provide: MyClass, useFactory:() => { return MyClass }}
...
constructor(MyClass) {
let instance = new MyClass();
}
但是,我記得讀到,這是由JS模塊的缺席是合理的。現在我們使用ES6模塊,我想知道是否需要使用DI進行類注入?我看到許多不使用角度DI獲取類的庫,但通過import
語句訪問它們。
'{provide:MyClass,useValue:MyClass}'應該是'{provide:MyClass,useClass:MyClass}'或者'MyClass',可能''提供:MyClass,useFactory:()=> {返回MyClass}}'也被認爲是'{提供:MyClass,useFactory:()=> {return new MyClass()}}' –
@GünterZöchbauer,nope ,他的例子是正確的,他想提供一個類,而不是一個實例 –
@GünterZöchbauer應該嗎?在useValue的情況下,一個類被注入。在useClass的情況下,一個類實例被注入。 – estus