小程序
小游戏
企业微信
微信支付
扫描小程序码分享
小程序离开当前页面提示:我需要一个页面点返回时不能直接离开,因为有数据存着,需要用户确认才离开。但是没有找到相关方法。求指点。
10 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
第1,设立标志,离开本页面时,会弹出对话框,提醒要保存数据。
//功能:在scroll-view中添加一项。
//注意:只是在前端添加。还需要点击“提交”按钮,才能提交到数据库。
tapAddLevel: function () {
var arr1levelsTmp = this.data.arr1levels
//1.创建一个对象,添加到数组的后面
var level = {
level: 'x',
pointLow: 0,
pointHigh: 0,
}
//2.新对象push到数组中。
arr1levelsTmp.push(level)
//3.更新scroll-view中的数组数据。页面上更新显示。
this.setData({
arr1levels: arr1levelsTmp,
hintStr: '数据未提交' //
})
//4.设立未提交标志。如果要退出本页面,就提问。
wx.enableAlertBeforeUnload({
message: "您还未提交数据,是否继续退出?",
},
第2,例如提交后,清除标志
//功能:点击页面下方的“提交”按钮,提交表单数据到服务器。
//注意:提交后,退出本页面时,不需要提醒数据保存的情况
submitLevel: function (e) {
wx.showModal({
title: '确定提交?',
content: '只有改变了数据\n才需要提交',
success: res => {
if (res.confirm) {
wx.request({
method: 'post',
url: this.data.urlPre + '/submitLevel',
data: e.detail.value,
...
//数据已经提交。清除标志。退出本页面时,不会提示。
wx.disableAlertBeforeUnload();
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
onLoad(res) {
wx.enableAlertBeforeUnload({ //开启页面退出时的对话框
message: "您还未保存信息,是否退出当前页面?",
success: function(res) {
// console.log("成功:", res);
return true
fail: function(err) {
// console.log("失败:", err);
return false
});
wx.disableAlertBeforeUnload() ;//关闭小程序页面返回时的对话框,放在保存信息的方法里
//开启和关闭一般同时使用效果好
我也遇到了这个问题,你们有解决方案么?
我也遇到了同样的问题,怎么处理呢
存储是可以的。但是这个数据有点大估计上百对key-value。一直不断存取感觉太过频繁了
但是你为什么不把数据缓存起来呢
mark一下感觉自己以后会用dao
求大神解答
:
不行的,直接退出了。我需要的是用户确认才退出
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
第1,设立标志,离开本页面时,会弹出对话框,提醒要保存数据。
//功能:在scroll-view中添加一项。
//注意:只是在前端添加。还需要点击“提交”按钮,才能提交到数据库。
tapAddLevel: function () {
var arr1levelsTmp = this.data.arr1levels
//1.创建一个对象,添加到数组的后面
var level = {
level: 'x',
pointLow: 0,
pointHigh: 0,
}
//2.新对象push到数组中。
arr1levelsTmp.push(level)
//3.更新scroll-view中的数组数据。页面上更新显示。
this.setData({
arr1levels: arr1levelsTmp,
hintStr: '数据未提交' //
})
//4.设立未提交标志。如果要退出本页面,就提问。
wx.enableAlertBeforeUnload({
message: "您还未提交数据,是否继续退出?",
})
},
第2,例如提交后,清除标志
//功能:点击页面下方的“提交”按钮,提交表单数据到服务器。
//注意:提交后,退出本页面时,不需要提醒数据保存的情况
submitLevel: function (e) {
wx.showModal({
title: '确定提交?',
content: '只有改变了数据\n才需要提交',
success: res => {
if (res.confirm) {
wx.request({
method: 'post',
url: this.data.urlPre + '/submitLevel',
data: e.detail.value,
success: res => {
...
})
this.setData({
...
})
//数据已经提交。清除标志。退出本页面时,不会提示。
wx.disableAlertBeforeUnload();
}
})
}
}
})
},
onLoad(res) {
wx.enableAlertBeforeUnload({ //开启页面退出时的对话框
message: "您还未保存信息,是否退出当前页面?",
success: function(res) {
// console.log("成功:", res);
return true
},
fail: function(err) {
// console.log("失败:", err);
return false
},
});
},
wx.disableAlertBeforeUnload() ;//关闭小程序页面返回时的对话框,放在保存信息的方法里
//开启和关闭一般同时使用效果好
我也遇到了这个问题,你们有解决方案么?
我也遇到了同样的问题,怎么处理呢
存储是可以的。但是这个数据有点大估计上百对key-value。一直不断存取感觉太过频繁了
但是你为什么不把数据缓存起来呢
mark一下感觉自己以后会用dao
求大神解答
:
不行的,直接退出了。我需要的是用户确认才退出