有没有办法在没有构造函数注入的情况下访问Aurelia的依赖注入系统.
我有一个叫做的课Box.我需要知道其中一个属性何时更改,以便我可以更新我的验证.我发现我可以使用bindingEngine.propertyObserver这个答案.
但我的实例Box是由BreezeJsAurelia 创建的.所以使用@inject(或@autoinject在我的情况下)获取实例bindingEngine是行不通的.
我看到aurelia.container.get会让我从Aurelia的DI框架中解决.但这需要Aurelia对象的当前实例.我能看到的唯一方法是...构造函数注入!
所以,要绕过构造函数注入,你需要...构造函数注入!
我希望我错过了一些东西,还有另一种方法可以获得bindingEngine没有构造函数注入的实例.
注意:现在我只需将我的变量转换为javascript属性并自行触发已更改的事件.但我知道这会让我陷入肮脏的检查...... :(
我想创建一个工厂,它能够创建使用依赖注入的类(MyClass,实现抽象类)的新实例。
我希望工厂看起来像这样:
export class Factory {
public static makeMyClass() {
return new MyClass();
}
}
Run Code Online (Sandbox Code Playgroud)
但是,当我采用这种方法时,EventAggregator 不会注入到 MyClass 中。
我怎样才能做到这一点?
export abstract class MyClassInterface {
abstract connect();
abstract disconnect();
abstract send(message: string);
}
Run Code Online (Sandbox Code Playgroud)
@inject(EventAggregator)
export class MyClass {
constructor(EventAggregator) {}
connect() {}
disconnect() {}
send(message: string) {}
}
Run Code Online (Sandbox Code Playgroud)
提前致谢!