如何创建注入实例和常量实例?
How to create a injected and a const instance?
classA
的一个实例需要获取classO
的一个实例的依赖,但对其他的是单例。怎么做?
@injectable()
class O{}
// A must be single instance!
@injectable()
class A{
constructor(o: O){
console.log( 'is A instance' );
}
}
@injectable()
class B{
constructor(a: A){
console.log( 'is B instance' );
}
}
@injectable()
class C{
constructor(a: A){
console.log( 'is C instance' );
}
}
@injectable()
class D{
constructor(b: B, c: C){
console.log( 'is D instance' );
}
}
let container = new Container();
container.bind<B>( O ).to( O );
container.bind<B>( A ).toConstantValue( A ); // ?
container.bind<B>( B ).to( B );
container.bind<C>( C ).to( C );
container.bind<D>( D ).to( D );
container.get<D>(D);
无法在文档中找到它,但此处建议的 ide 是一个选项 -
@injectable()
class O{}
// A must be single instance!
@injectable()
class A{
constructor(o: O){
console.log( 'is A instance' );
}
}
@injectable()
class B{
constructor(a: A){
console.log( 'is B instance' );
}
}
@injectable()
class C{
constructor(a: A){
console.log( 'is C instance' );
}
}
@injectable()
class D{
constructor(b: B, c: C){
console.log( 'is D instance' );
}
}
let container = new Container();
container.bind<O>( O ).to( O );
container.bind<A>( A ).to( A ).inSingletonScope();
container.bind<B>( B ).to( B );
container.bind<C>( C ).to( C );
container.bind<D>( D ).to( D );
container.get<D>(D);
classA
的一个实例需要获取classO
的一个实例的依赖,但对其他的是单例。怎么做?
@injectable()
class O{}
// A must be single instance!
@injectable()
class A{
constructor(o: O){
console.log( 'is A instance' );
}
}
@injectable()
class B{
constructor(a: A){
console.log( 'is B instance' );
}
}
@injectable()
class C{
constructor(a: A){
console.log( 'is C instance' );
}
}
@injectable()
class D{
constructor(b: B, c: C){
console.log( 'is D instance' );
}
}
let container = new Container();
container.bind<B>( O ).to( O );
container.bind<B>( A ).toConstantValue( A ); // ?
container.bind<B>( B ).to( B );
container.bind<C>( C ).to( C );
container.bind<D>( D ).to( D );
container.get<D>(D);
无法在文档中找到它,但此处建议的 ide 是一个选项 -
@injectable()
class O{}
// A must be single instance!
@injectable()
class A{
constructor(o: O){
console.log( 'is A instance' );
}
}
@injectable()
class B{
constructor(a: A){
console.log( 'is B instance' );
}
}
@injectable()
class C{
constructor(a: A){
console.log( 'is C instance' );
}
}
@injectable()
class D{
constructor(b: B, c: C){
console.log( 'is D instance' );
}
}
let container = new Container();
container.bind<O>( O ).to( O );
container.bind<A>( A ).to( A ).inSingletonScope();
container.bind<B>( B ).to( B );
container.bind<C>( C ).to( C );
container.bind<D>( D ).to( D );
container.get<D>(D);