前言:当后台传输数据时传输的数字有可能是小数,但是客户要求必须显示在页面的是整数;
思路:因为后台传过来的数据大部分都是义以数组的形式传过来,将这些数据显示在页面要进行数据实例化并且页面要用for循环才可以;
小数转整数时要进行二次实例化才可以显示在页面,由于页面要for循环所以小数转整数也要用for循环通过这个数组获取下标的方式对应的将整数显示在页面,不说了js代码如下小数转整数的方式有toFixed和parseInt()要根据后台传的数据类型来判断
onLoad: function (options) { var that = this; if (wx.getStorageSync("openId")) { var params = { wxOpenId: wx.getStorageSync("openId") } app.YoniClient.request(app.Func.GET_HOME, params, function (res) { //这里是后台接口这里定义必须传三个参数(每个项目传几个不一定) console.log("首页返回的数据:" + JSON.stringify(res)); if (res.code == 0) { that.setData({ //实例化第一次传过来的数据 courseList: res.result.courseList,
})
//这里就是对小数转换整数的过程 let list = that.data.courseList; for (let i = 0; i < list.length; i++) { let price = parseInt(list[i].price); console.log(\'===========================\' + price); let temp = \'courseList[\' + i + \'].price\'; that.setData({ [temp]: price }) } } }) } else { //登录态过期 that.wxLogin(that); } },
let list = that.data.courseList; //这里是将后台courseList传过来的数据赋值list也就是知道里面有几组数据间接寻找下标
for (let i = 0; i < list.length; i++) {
let price = parseInt(list[i].price); //这里就是对小数进行转换,price是小数对应的key值
console.log(\'===========================\' + price);
let temp = \'courseList[\' + i + \'].price\';//使下标加一
that.setData({ //二次实例化
[temp]: price
})
}
后台传过来的数据如下所示:
data里面还是不变:
courseList: [
],
wxml代码如下:
<view class=\'index-section-title\'> <text class=\'section-title-left-font\'>推荐课程</text> </view> <view class=\'course\'> <view class=\'course_big\' wx:for="{{courseList}}"> <view class=\'course_img\'> <image class=\'course_img_a\' src=\'{{item.imageUrl}}\' mode=\'widthFix\'></image> </view> <view class=\'course_text\'> <view class=\'course_text_a\'>{{item.name}}</view> <view class=\'course_text_b\'>{{item.summary}}</view> <view class=\'course_price\'> <text class=\'course_price_a fl\'>{{item.originalPrice}}元</text> <text class=\'course_price_b fr\'>{{item.price}}元</text> <view class=\'clear\'></view> </view> </view> </view> </view>
效果如下:
本人原创博客希望大家提出意见: