1.首先需要在查询之前获取输入的所在城市以及到的城市,以及时间的选择,通过这些条件去筛选,所以需要在点击查询按钮的时候绑定一个时间,需要携带参数去进行查询
<navigator class="search" url="/pages/trainBuyContent/trainBuyContent?from={{from}}&to={{to}}&trainTime={{startDate}}">查询</navigator>
2.需要到跳转的页面接收参数通过onload事件的options获取
var from = options.from; var to = options.to; var trainTime = options.trainTime;
3.最重要的是筛选出相关数据,这里需要一个for循环的判断语句,在请求数据地址URL的时候,通过for循环和if语句找出相对应的数据文件里面所对应的json数据。
wx.request({ url: API_BASE, success: (res) => { for(var i=0;i<res.data.data.trainList.length;i++){ if (from == res.data.data.trainList[i].from && to == res.data.data.trainList[i].to && trainTime == res.data.data.trainList[i].trainTime){ temp.push(res.data.data.trainList[i]); } } this.setData({ searchedList:temp }) } })
4.这时候再在页面通过for循环输出就可以了
wx:for="{{searchedList}}" wx:key="{{item.id}}" temp.push(res.data.data.trainList[i]); this.setData({ searchedList:temp })
*小程序页面传值的方式:1.url传值2.本地储存3.全局的app对象
1.先获取全局对象,然后在点击确定购买的success回调函数的时,去获取所有的信息,以一个json格式去获取
const app = getApp(); var trainedList = app.globalData.trainedList; var trainItem = { from: this.data.from, to: this.data.to, trainNum: this.data.trainNum, trainTime: this.data.trainTime, totalPrice: this.data.totalPrice }; trainedList.push(trainItem);
2.然后在相应的页面去获取这个全局的数组
onLoad: function (options) { this.setData({ trainedList: app.globalData.trainedList }) },
3.通过一个for循环让其输出在页面
还有一部分功能未能展示或者未完善,请大家见谅。
第一次发表文章有点小慌张,写的不好希望大家谅解,说实话,在我看来,这次所写的东西确实有点'糙',但还是很开心自己能坚持写下来,功能方面以后会继续完善,希望能得到各位大佬们的意见和建议,没啥说的,继续努力吧,路漫漫其修远兮,Just do it!