停止卸载组件,直到用户从对话框中选择保存或关闭
Stop unloading a component until user selects Save or Close from a dialog
我有一个带有一些表单输入的组件。如果我在修改当前组件中的某些内容后移动到另一个组件,那么它应该等到用户从打开的对话框中单击“确定”或“保存”window。
我可以通过 ngOnDestroy
函数触发对话框,但到那时,下一个组件已经加载。
这样做有什么解决方法吗?
我已经尝试过了,canDeactivate
但是我的情况不起作用。
我正在使用 Angular 4
再次尝试 canDeactivate,这是唯一干净的方法。打开那里的对话框,return 如果需要阻止导航,您将解决的承诺(false)。
或者,如果您使用 mat-dialog,您可以简单地 return dialogRef.afterClose(),其中 return 是对话结果的可观察值。
如果您需要在用户点击保存时在组件中进行 api 调用,您也可以将 afterClose 可观察对象切换映射到那个。
我有一个带有一些表单输入的组件。如果我在修改当前组件中的某些内容后移动到另一个组件,那么它应该等到用户从打开的对话框中单击“确定”或“保存”window。
我可以通过 ngOnDestroy
函数触发对话框,但到那时,下一个组件已经加载。
这样做有什么解决方法吗?
我已经尝试过了,canDeactivate
但是我的情况不起作用。
我正在使用 Angular 4
再次尝试 canDeactivate,这是唯一干净的方法。打开那里的对话框,return 如果需要阻止导航,您将解决的承诺(false)。
或者,如果您使用 mat-dialog,您可以简单地 return dialogRef.afterClose(),其中 return 是对话结果的可观察值。
如果您需要在用户点击保存时在组件中进行 api 调用,您也可以将 afterClose 可观察对象切换映射到那个。