【发布时间】:2020-04-20 10:21:28
【问题描述】:
我正在开发一个 aurelia 应用程序。我有一个组件(它是一个整页组件并且是可导航的),并且在另一个页面中,我想使用这个组件作为提示让用户从该页面中进行选择。所以我写了下面的代码来按预期打开它:
selectTaskFromTree(callbackOrSuccess, failure) {
const dialog = this.dialogService
.open({ viewModel: PLATFORM.moduleName('features/view/tree/tree'), model: {}, lock: false });
if (callbackOrSuccess) {
if (failure) {
dialog.whenClosed(response => {
if (!response.wasCancelled) {
callbackOrSuccess(response.output);
} else {
failure(response);
}
});
}
else{
dialog.whenClosed(callbackOrSuccess);
}
return;
}
else{
return dialog;
}
}
所以组件Tree 现在已成功加载并显示。现在的问题是如何确定TreeComponent 是否作为对话框打开。
我正在考虑的方式是将任意参数传递给它,如果参数为真,则状态为对话框,否则不是对话框:
const dialog = this.dialogService
.open({ viewModel: PLATFORM.moduleName('features/view/tree/tree'), model: {isDialog: true}, lock: false });
但我认为也许还有更好的方法来做到这一点。例如从 DialogService 询问我是否是一个对话框。那么还有哪些其他解决方案,哪个更好呢?
【问题讨论】:
-
我认为将这些数据作为参数(给模型)发送的解决方案是一个非常好的选择。您可以利用相同的方法以这种干净的方式传递所有类型的数据。