在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