我需要实现一个按钮,一旦单击该按钮,它将提交表单并返回历史记录的最后一页。回到最后一页很容易,我只需要这样做
this.location.back();
我的问题是执行this.location.back()时会触发CanDeactivate。 canDeactivate方法当前仅检查表单是否脏了,如果是,则将显示“您有未保存的更改”对话框,并且您必须单击“离开”按钮返回上一页。对于客户端,此行为会造成混乱,特别是如果成功保存或提交了表单。
我打算做的是..提交表单后,我将模型或表单的isDirty属性设置为false或将表单标记为原始表单,或者重置表单,以可能的方式(我刚刚开始编码在角度上,请耐心等待,大声笑),以便在触发canDeactivate时,它将不再看到表单很脏,因此将不会显示“未保存的更改”对话框。
我还没有开始对该部分进行编码,但是我想知道这听起来是否是实现这种功能的可接受且可行的方法。
谢谢!
答案 0 :(得分:1)
提交表单后,只需检查表单是否已成功发布,然后重置表单并返回使用位置
this.myAPI.post(this.myForm.value).subscribe(res=>{
console.log(res)
this.myForm.reset()
this.location.back()
})
答案 1 :(得分:0)
this.myAPI.post(this.myForm.value).subscribe(res=>{
console.log(res)
this.myForm.reset()
this.location.back()
})