【发布时间】:2017-06-27 08:44:46
【问题描述】:
我有一个类使用'aurelia-dialog` 中的DialogService 实例来打开我的Aurelia 应用程序中的几乎每个对话框。以一种非常抽象的方式,该类看起来像这样:
export class DialogTrigger{
triggerDialogA() {...}
triggerDialogB() {...}
triggerDialogC() {...}
}
在我尝试将DialogTrigger 注入其中一个对话框之前,一切正常。
假设我想创建一个新对话框 DialogD。我只是在DialogTrigger 中添加另一个方法triggerDialogD(),它会打开一个带有DialodD 视图模型的新对话框,一切正常。但是,如果我希望我的新对话框也通过使用 DialogTrigger 的实例来触发其他对话框之一(A、B 或 C),那么一切都会崩溃。
如果我将DialogTrigger 注入DialogD,我总是会收到错误消息:
键/值不能为空或未定义。您是否尝试注入/注册 DI 不存在的东西?
如果我删除依赖项,对话框就会起作用。
TL;DR
我有一个 DialogTrigger 类打开 aurelia-dialogs。当我将DialogTrigger 注入由它实例化的任何对话框时,DI 失败。
有什么想法吗?
【问题讨论】:
标签: typescript dependency-injection aurelia aurelia-dialog