我想在用户尝试离开页面(组件)进行一些更改时警告用户。因此我使用本文https://medium.com/front-end-weekly/angular-how-keep-user-from-lost-his-data-by-accidentally-leaving-the-page-before-submit-4eeb74420f0d,but实现了此错误
“未捕获(承诺):TypeError:无法读取以下属性的'已提交' 未定义”和“未捕获(承诺):TypeError:无法读取属性 当我尝试从组件导航时,“未定义的脏” 无需更改。
有人可以帮我这个忙。尝试从2天开始解决此错误。 谢谢 ps:这些错误来自can-deactivate方法。
答案 0 :(得分:0)
情况1:这基本上在代码无法到达您的表单时发生。在某些应用中,当您单击某些按钮或执行任何操作时,将显示一些表格,否则该页面将不在该页面中。因此,每当您检查(this.form.submitted或this.form.dirty)确保存在表单。因此只需添加一个if语句即可:
if(this.form){
if(this.form.submitted || !this.form.dirty){
return true;
}
}
情况2:当您未在组件中实现抽象方法/访问器时,也会发生这种情况。