gpt4 book ai didi

dependency-injection - 在 Aurelia 中创建使用依赖注入(inject)的类的新实例

转载 作者:行者123 更新时间:2023-12-01 12:19:53 25 4
gpt4 key购买 nike

我想创建一个能够创建使用依赖注入(inject)的类(MyClass,实现抽象类)的新实例的工厂。

我希望工厂看起来像这样:

工厂

export class Factory {

public static makeMyClass() {
return new MyClass();
}

}

但是,当我采用这种方法时,EventAggregator 不会注入(inject)到 MyClass 中。

我怎样才能做到这一点?

界面
export abstract class MyClassInterface {

abstract connect();
abstract disconnect();
abstract send(message: string);

}

类(class)
@inject(EventAggregator)
export class MyClass {

constructor(EventAggregator) {}

connect() {}
disconnect() {}
send(message: string) {}

}

提前致谢!

最佳答案

第一个选项

使用 NewInstance.of 解析器:

import {inject, NewInstance} from 'aurelia-framework';

@inject(NewInstance.of(MyClass))
export class MyViewModel {
constructor(myClass) {
this.myClass = myClass; //myClass is always a new instance
}
}

第二种选择

使用工厂:
import {inject, EventAggregator} from 'aurelia-framework';

@inject(EventAggregator)
export class MyFactory {

constructor(eventAggregator) {
this.eventAggregator = eventAggregator;
}

public static createMyClass() {
return new MyClass(this.eventAggregator);
}
}

@inject(MyFactory)
export class MyViewModel {

constructor(myFactory) {
this.myClass = myFactory.createMyClass();
}
}

关于dependency-injection - 在 Aurelia 中创建使用依赖注入(inject)的类的新实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45219953/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com