我正在开发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
是否作为对话框打开。
我正在考虑的方法是向其传递任意参数,如果该参数为true,则状态为对话,否则为对话:
const dialog = this.dialogService
.open({ viewModel: PLATFORM.moduleName('features/view/tree/tree'),model: {isDialog: true},lock: false });
但是我认为也许还有更好的方法可以做到这一点。例如,从DialogService询问我是否是对话框。那么还有哪些其他解决方案?哪种更好?