学微信小程序课程学到题库开发,正好看到个考研模型,相似度比较高,就起了魔改一番的心思
1、原项目为了丰富题库,有题号和选项双随机的功能,但在考研目标建议上没有必要,砍掉
2、原项目ABC的分值固定,只要统计ABC的个数即可,但考研目标里不同题目的同一选项分值可能不确定。暂定为修改题库,增加选项对应分值
3、原项目采用一个选项绑定一个函数的做法,比较麻烦,可以简化成一个函数
globalData: {
userInfo: "hello",
question: [
{ "question": "关于学习能力,以下哪种情况最符合你?", "option": { "A": "学习时不知道如何着手,很恐慌", "B": "自己学起来还好或者需要有人辅导和监督", "C": "只要给我资料、视频和书,我全部可以自己学", "D": "我学什么东西都很快,所有考试学一段时间都觉得没问题"}, "score": { "A": -1, "B": 0, "C": 1, "D": 2 } },
{ "question": "关于考研投入,以下哪种情况最符合你?", "option": { "A": "一边找工作/实习,一边考研,或者每天花5小时以下", "B": "正常准备,没课时基本都在复习", "C": "全心投入,平均每天差不多花8小时复习,偶尔放松,放假也如此", "D": "超常投入,平均每天花10个小时左右甚至更久,杜绝考研以外活动" }, "score": { "A": -1, "B": 0, "C": 1, "D": 0 } },
{ "question": "关于心理素质,以下哪种情况最符合你?", "option": { "A": "我害怕考试,每次大考都考得比正常水平差", "B": "考试有些紧张,但基本都能发挥正常水平", "C": "我是考试型选手,越到关键时刻发挥越好" }, "score": { "A": -1, "B": 0, "C": 1 } },
{ "question": "关于本科院校,以下哪种情况最符合你?", "option": { "A": "专科院校", "B": "二三本院校", "C": "一本院校", "D": "211院校", "E": "985院校", "F": "顶尖985院校" }, "score": { "A": 1, "B": 2, "C": 3, "D": 4, "E": 5, "F": 6 } }
]
}
对字典的key-value格式更有感觉了,而且还可以并列嵌套。引用格式app.globalData.question[0].question或app.globalData.question[0].option[“A”],value等于.name等效于[‘name’]
报错Property assignment expected,后面发现是key-value没有严格对应,少了个}
js内容
data: {
index: 0,
scoresum: 0,
questionDetail: app.globalData.question[0].question,
answerA: app.globalData.question[0].option["A"],
answerB: app.globalData.question[0].option.B,
answerC: app.globalData.question[0].option.C,
answerD: app.globalData.question[0].option.D,
answerE: app.globalData.question[0].option.E,
answerF: app.globalData.question[0].option.F,
},
answerClick: function (e) {
var ans = e.currentTarget.dataset.which;
this.data.scoresum = this.data.scoresum + app.globalData.question[this.data.index].score[ans];
console.log(this.data.scoresum);
this.setData({
index: this.data.index + 1,
})
if (this.data.index == 4) {
wx.redirectTo({
url: '/pages/result/result?sum=' + this.data.scoresum,
})
}
else{
this.setData({
questionDetail: app.globalData.question[this.data.index].question,
answerA: app.globalData.question[this.data.index].option["A"],
answerB: app.globalData.question[this.data.index].option["B"],
answerC: app.globalData.question[this.data.index].option["C"],
answerD: app.globalData.question[this.data.index].option["D"],
answerE: app.globalData.question[this.data.index].option["E"],
answerF: app.globalData.question[this.data.index].option["F"],
})
}
},
wxml内容
<view url="" class="weui-cell weui-cell_access" hover-class="weui-cell_active" bindtap='answerClick' data-which="A">
<view class="weui-cell__bd">A、{{answerA}}</view>
<view class="weui-cell__ft weui-cell__ft_in-access"></view>
</view>
其实收获很少,疑问倒是一大堆,毕竟可以说是没有任何前端基础。
一些疑问
const app = getApp()
Page({
data: {
},
beginAnswer: function() {
wx.navigateTo({
url: '../test/test'
})
},
onLoad: function () {
},
getUserInfo: function(e) {
}
})
心理测试小程序