angularjs - Ionic 3如何在页面离开时缓存未完成的表单输入
问题描述
有没有办法在页面离开时缓存未完成的表单?当我转到表单时,突然我尝试在每个输入字段上放置一些数据,当我离开该页面时,输入字段被清除。
我曾经navCtrl.push
去那个我想创建POST的页面。
我还使用formBuilder
Angular表单来构建我的表单模型。
我怎样才能做到这一点?
感谢有人可以提供帮助。
解决方案
我通过在提供程序中创建一个函数来检查和循环通过 formBuilder 对象解决了这个问题。如果一个字段具有现有值,则如果用户想离开,则会弹出警报控制器。如果没有,它将继续离开页面。
下面是代码:
在您的页面中
async ionViewCanLeave() {
const formObj = this.form.value
if (!this.done) await this.alertMsg.allowUserToLeaveForm(formObj)
}
在提供者中
allowUserToLeaveForm(formObject) {
const lengthChecker = formObject
const vals = Object.keys(lengthChecker).map((key) => lengthChecker[key].length)
const checkArr = vals.some(field => field > 0)
if (checkArr) {
return new Promise((resolve, reject) => {
const confirm = this.alertCtrl.create({
subTitle: 'Are you sure you want to leave the page?',
title: 'Your changes will not be saved',
enableBackdropDismiss: false,
buttons: [
{
text: 'No',
handler: () => {
reject();
}
},
{
text: 'Yes',
handler: () => {
resolve();
}
}
]
});
confirm.present();
});
}
}
推荐阅读
- android - 如何选择 AOSP 重力传感器而不是获得三星的实施?
- python - python glob 或 listdir 创建然后将文件从一个目录保存到另一个
- javascript - 暴露用于使用 html 页面调用的 typescript 函数
- r - 从 R 中的向量元素创建数字序列列表
- google-sheets - Google 表格可以从 Google 文档中获取信息吗?
- python - 自定义关键字机器人框架selenium webdriver python“对象没有属性'get_attribute'”
- python - 合并在 Python 中无法正常工作,重复列
- azure - 使用 EventProcessorHost 时,事件中心中的传出消息多于传入消息
- reactjs - React/Webpack 4:需要建议,从文件夹中选择性加载 svg 的最佳实践
- python - 在 flask-sqlalchemy 中计算当天的总发生次数