网站首页 > 技术文章 正文
3.4 开发参与投票页面
3.4.2 借用伪造数据开发功能
为了便于开发,新建一个编译模式:
之前没看文章,每次都习惯性填完投票创建的信息提交再跳转看效果。好累。 添加变异模式开发真方便。
另外,点击提交后没跳转到投票页面,通过uni-app路由跳转(redirectTo、navigateTo)不生效_uni.redirectto不生效_小玲子小玲子的博客-CSDN博客
发现自己的redirectTo方法中的url属性值前面没加上/,现在已经改了《微信小程序开发从入门到实战》二十六,书中代码没问题,自己粗心大意没控制住,哎。
接下来修改pages/vote/vote.js文件的代码:
// pages/vote/vote.js
Page({
/**
* 页面的初始数据
*/
data: {
voteID:'',
type:'',
voteTitle: '',
voteDesc: '',
optionList: [],
endDate: '', //用于保存截止日期
isAnonymous: false,
isExpired: false,
pickedOption:[] //当前用户选择的选项
},
/**
* 生命周期函数--监听页面加载
*/
onLoad(options) {
const voteID = options.voteID //通过页面路径参数获取投票ID
this.getVoteDateFromServer(voteID) //从服务器端获取投票信息
},
checkExpired(endDate){
const now = new Date()
const nowYear = now.getFullYear()
const nowMonth = now.getMonth() + 1
const nowDay = now.getDate()
const endDateArray = endDate.split('-') //将字符串分隔成字符数组,分隔符为-
const endYear = Number(endDateArray[0]) //取字符数组中的年份,并将数据类型转换为number
const endMonth = Number(endDateArray[1]) //取字符数组中的月份,并将数据类型转换为number
const endDay = Number(endDateArray[2]) //取字符数组中的日期,并将数据类型转换为number
//判断是不是年份超了
if(nowYear > endYear){
return true
}
//判断是不是月份超了
if((nowYear === endYear) && (nowMonth > endMonth)){
return true
}
//判断是不是日期超了
if((nowYear === endYear) && (nowMonth === endMonth) && (nowDay === endDay)){
return true
}
//其他情况一定超了
return false
},
getVoteDateFromServer(voteID) {
if(voteID === 'test'){ //如果投票ID为test,则伪造一些测试数据
const voteData = {
type:'radioVote',
voteTitle: '测试数据投票标题',
voteDesc: '测试数据投票描述',
optionList: ['测试数据选项1','测试数据选项2','测试数据选项3','测试数据选项4'],
endDate: '2023-12-30', //用于保存截止日期
isAnonymous: false
}
/* 以上是伪造的测试数据*/
const isExpired = this.checkExpired(voteData.endDate) //检查投票是否已经过期
this.setData({
voteID,
type: voteData.type,
voteTitle: voteData.voteTitle,
voteDesc: voteData.voteDesc,
optionList: voteData.optionList,
endDate: voteData.endDate,
isAnonymous: voteData.isAnonymous,
isExpired
})
}else{
// TODO 真的从服务端获取投票信息
}
},
})
借用的伪造的测试数据完成了数据的加载。现在将这些逻辑层的数据在视图层进行展示了。
3.4.2 借用伪造数据开发功能完成。
3.4.3 使用radio单项选择器组件敬请期待。
猜你喜欢
- 2024-11-03 「大促最后1天」带你了解家庭的生命周期
- 2024-11-03 uniapp-权限处理(uniapp弹出通知权限)
- 2024-11-03 万能前端框架uni app初探03:底部导航开发
- 2024-11-03 uniapp开发安卓应用踩坑记(uniapp开发项目)
- 2024-11-03 uniapp 触底加载更多数据的方法(uniapp上拉加载更多)
- 2024-11-03 uni-app plus.runtime.arguments 获取参数
- 2024-11-03 uniapp入门到进阶(必备知识扩展-1) - vue3你不知道的那些事
- 2024-11-03 遵义小红椒 带你进 uni-app 入坑指南
- 2024-11-03 uni-app从入门到进阶 系统完成项目实战
- 2024-11-03 4、类京东商城小程序_分类导航区域实现
- 1507℃桌面软件开发新体验!用 Blazor Hybrid 打造简洁高效的视频处理工具
- 501℃Dify工具使用全场景:dify-sandbox沙盒的原理(源码篇·第2期)
- 484℃MySQL service启动脚本浅析(r12笔记第59天)
- 463℃服务器异常重启,导致mysql启动失败,问题解决过程记录
- 462℃启用MySQL查询缓存(mysql8.0查询缓存)
- 442℃「赵强老师」MySQL的闪回(赵强iso是哪个大学毕业的)
- 422℃mysql服务怎么启动和关闭?(mysql服务怎么启动和关闭)
- 418℃MySQL server PID file could not be found!失败
- 最近发表
- 标签列表
-
- c++中::是什么意思 (83)
- 标签用于 (65)
- 主键只能有一个吗 (66)
- c#console.writeline不显示 (75)
- pythoncase语句 (81)
- es6includes (73)
- windowsscripthost (67)
- apt-getinstall-y (86)
- node_modules怎么生成 (76)
- chromepost (65)
- c++int转char (75)
- static函数和普通函数 (76)
- el-date-picker开始日期早于结束日期 (70)
- js判断是否是json字符串 (67)
- checkout-b (67)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- & (66)
- java (73)
- js数组插入 (83)
- linux删除一个文件夹 (65)
- mac安装java (72)
- eacces (67)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)