angular1では、私たちはしばしば、インスタンスではなくクラスを注入するためにfactoryを使用しました。 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:()=> {新しいMyClass()}}を返すことを意味していました。 ' –
@GünterZöchbauer、nope 、彼の例は正しいです、彼はクラスではなく、インスタンスを提供したい –
@GünterZöchbauerそれをする必要がありますか? useValueの場合、クラスが注入されます。 useClassの場合、クラスインスタンスが注入されます。 – estus