尝试使用Inversify实现 DI ,尚不清楚在进行依赖注入时如何在没有任何参数的情况下实现类实例化。这几乎等同于角度 DI。在 Angular 中,一个能够构建包含注入的类而无需任何 @Inject 参数。
app.module.ts
import { Container } from 'inversify';
export class AppModule {
constructor() {
let container = new Container(); // maybe use { autoBindInjectable: true }
const instance = new DatabaseService(); // DatabaseService is injectable
}
}
根模块创建一个 InversifyContainer
并收集所有可注入的类实例。该类DatabaseService
应包含所有数据库操作并具有@injectable
装饰器。
模型.ts
import { DatabaseService } from './database.service';
import { inject } from 'inversify';
export class Models {
constructor(@inject(DatabaseService) dbService: DatabaseService) {}
}
获取的Models
可注入实例DatabaseService
。在另一个类中,我现在想创建一个Models
. 如何在没有任何参数的情况下实现类实例化?就像它是有角度的。
我的班级.ts
import { Models } from './models.component'
export class MyClass {
constructor() {
models = new Models() // Want no constructing parameters!
}
}
你有什么想法或建议吗?谢谢!