- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
尝试使用 Inversify 实现 DI,尚不清楚在进行依赖注入(inject)时如何在没有任何参数的情况下实现类实例化。这几乎等同于角度 DI。在 Angular 中,一个能够构建包含注入(inject)的类而无需任何 @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
}
}
Container
并收集所有可注入(inject)的类实例。
DatabaseService
类应该包含所有的数据库操作并且有一个
@injectable
装饰师。
import { DatabaseService } from './database.service';
import { inject } from 'inversify';
export class Models {
constructor(@inject(DatabaseService) dbService: DatabaseService) {}
}
Models
获取
DatabaseService
的可注入(inject)实例.在另一个类中,我现在想创建
Models
的实例.如何在没有任何参数的情况下实现类实例化?就像它是有角度的。
import { Models } from './models.component'
export class MyClass {
constructor() {
models = new Models() // Want no constructing parameters!
}
}
最佳答案
你可以简单地使用 Angular 本身已经提供的东西,而不是使用那个 Inversify。创建一个新模块来处理你的应用实例:
@NgModule({
providers: [
DatabaseService
]
})
export class CoreModule {
constructor (@Optional() @SkipSelf() private parentModule: CoreModule) {
if (parentModule) {
throw new Error('CoreModule already loaded');
}
}
}
CoreModule
从被加载两次,确保您的注入(inject)剂只有 1 个实例。
AppModule
:
@NgModule({
imports: [
CoreModule
]
})
export class AppModule {}
关于typescript - 使用 typescript 在类实例化时处理 Inversify @inject() 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49031045/
如何初始化 knex 并使用 Inversify 依赖注入(inject)器将其注入(inject) 我需要的每个地方? 最佳答案 我从来没有用过Knex但我是 InversifyJS 的作者,我会尽
我正在为我正在使用的 Typescript 应用程序试用 Inversify.js。现在,没有涉及框架,所以它是纯 ES2015。 我正在尝试按照主页中的示例进行操作,但遇到了以下问题:当我尝试在浏览
尝试使用 Inversify 实现 DI,尚不清楚在进行依赖注入(inject)时如何在没有任何参数的情况下实现类实例化。这几乎等同于角度 DI。在 Angular 中,一个能够构建包含注入(inje
我尝试开始工作inversify-restify-utils,但遇到了问题。请求上下文和主体变量为空。我的 Controller : @Controller('/users') @injectable
我有 TypeScript 应用程序,我正在使用 Inversify对于 IoC。 我有一个连接类: 'use strict'; import { injectable } from 'inversi
我正在使用这个包 https://github.com/inversify/inversify-express-utils对于 nodejs 应用程序,我想有一个地方来处理来自 any Control
我正在尝试通过 inversify 在我的节点项目上实现依赖注入(inject). 我有一个这样的内核配置:inversify.config.ts import "reflect-metadata";
我正在尝试通过 inversify 在我的节点项目上实现依赖注入(inject). 我有一个这样的内核配置:inversify.config.ts import "reflect-metadata";
我们尝试使用 websockets 连接以扩展基于 inversify-express-utils 的 typescript 应用程序,但到目前为止还没有成功: import 'reflect-met
我有一个使用 InversifyJS 和 Inversify Inject Decorators 的 Typescript 类将服务注入(inject)私有(private)属性(property)。
我有一个 typescript Vue SPA项目,在其中使用Inversify。 我使用了awesome-typescript-loader来编译我的 typescript 源代码。现在我想切换到B
在InversifyJS , 遵循 factory injection guide 中概述的方法是否有任何特定优势?和 constructor injection guide 用于分别使用 toDyn
我是一名优秀的程序员,十分优秀!