微信小程序之使用wx:for遍历循环

效果图如下:

实现代码如下:
type.js:

// pages/type/type.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    types: ""
  },editType: function (e) {
     var typeId =  e.currentTarget.dataset['id'];
     console.log("edit:"+typeId);


    wx.navigateTo({
      url: ../type_edit/type_edit?typeId=' + typeId
    })
  },delType:function(e){

    var typeId = e.currentTarget.dataset[];

    console.log(delete:typeId)


    wx.showModal({
      title: 提示,content: 确认要删除该支出类型?if (res.confirm) {
          console.log(用户点击确定)

          wx.request({

            url: getApp().globalData.urlPath + spendingType/delete"POSTContent-Type": application/x-www-form-urlencoded
            },success: function (res) {
              console.log(res.data.code);
              if (res.statusCode == 200) {

                访问正常
                if (res.data.code == 000000) {
                  wx.showToast({
                    title: 删除成功,返回支出类型列表success3000../type/type
                      })
                    }
                  })

                }
              } else {

                wx.showLoading({
                  title: 系统异常2000)
              }

            }
          })


        } else  (res.cancel) {
          console.log(用户点击取消)
        }
      }
    })

  },*
   * 生命周期函数--监听页面加载
   
  onLoad: function (options) {
    wx.setNavigationBarTitle({

      title: 支出类型列表

    })
    var userCode = wx.getStorageSync(userId);
    var self = this
    wx.request({
      url: getApp().globalData.urlPath + spendingType/types",json数据地址 
      data: {
        userCode: userCode
      },headers: {
        
      },success: function (res) {
        self.setData({

          types: res.data.data

        });等同于

      }
    })
  },1)">*
   * 生命周期函数--监听页面初次渲染完成
   
  onReady: function () {

  },1)">*
   * 生命周期函数--监听页面显示
   
  onShow: function () {

  },1)">*
   * 生命周期函数--监听页面隐藏
   
  onHide: function () {

  },1)">*
   * 生命周期函数--监听页面卸载
   
  onUnload: function () {

  },1)">*
   * 页面相关事件处理函数--监听用户下拉动作
   
  onPullDownRefresh: function () {

  },1)">*
   * 页面上拉触底事件的处理函数
   
  onReachBottom: function () {

  },1)">*
   * 用户点击右上角分享
   
  onShareAppMessage: function () {

  }
})

type.js没什么好说的,如果要说,只能说这个onLoad这里的onLoad就相当于js中的onload方法,当进入该视图时,默认全局加载一次。

type.wxml:

<view>
  <view>
    <navigator url=/pages/type_add/type_add" hover-class=navigator-hover">添加支出类型信息</navigator>
  </view>
  <view>
    <text>\n</text>
  </view>
  <view>
    <view>
      <text>列表数据</text>
      <text>\n</text>
    </view>
<view table">
        <view tr thead">
          <view td">类型名</view>
          <view ">创建时间</view>
          <view td ">修改时间</view>
          <view ">备注</view>
          <view ">操作</view>
        </view>
        <block>
          <view tr" wx:for={{types}}for-item=item">
            <view ">{{item.typeName}}</view>
            <view ">{{item.createDate}}</view>
            <view ">{{item.modifyDate}}</view>
            <view ">{{item.remark}}</view>
            <view ">
              <text bindtap=editType' data-id={{item.typeId}}">编辑</text>
              <text>\n</text>
              <text>\n</text>
              <text bindtap=delType">删除</text>
            </view>
          </view>
        </block>
      </view>

 

  </view>
</view>

遍历循环主要使用的是wx:for。如果要类比的话,我觉得jstl跟这个神似。先来看看jstl,代码如下:

<c:forEach var=u" items=${user}">
        <tr>
                <td>${u.cid}</td>
                <td>${u.cname}</td>
                <td>${u.age }</td>
        </tr>
</c:forEach>

var相当于我可以任意定义一个简要字母来调用item(item相当于type.js中的data或self.setData存储的数据)。

如果你还不明白的话,可以联系到$.each,代码如下:

$.each(classroom_list,function(i,c) {

                    rows = rows + <tr>;
                    rows = rows + <td>" + c.id + </td>" + c.nickname + <td><a href='student_submit_info.html?userId="+c.id+'>查看详情</a></td></tr>
});

type.wxss:

.table {
  border: 1px solid #ccc;
  font-size: 28rpx;
  background: #fff;
  border-right: none;
}
 
.tr{
  display: flex;
  justify-content: space-between;
}
 
.td {
  text-align: center;
  border: 1px solid #ccc;
  display: inline-block;
  border-left: none;
  border-bottom: none;
  padding: 10rpx 1%;
  width: 12%;
}
 
.thead .td{
  border-top: none;
  height: 140rpx;
  line-height: 50rpx;
}

参考资料:
微信小程序之列表渲染

相关文章

1. 获取输入框数据wxml中的input上增加bindinput属性,和方法值在js部分定义与之对应的方法,只要在输入...
1.map组件的高度如果想要铺满屏幕,要是使用height:100vh样式2.获取位置要在app.json中标明权限3.先使用...
QQ小程序支付 Java后端 同学折腾QQ小程序的支付折腾了好几天,没有完成统一下单,因为我做过微信和支付...
前言: 在实际项目开发中我们经常会遇到账号统一的问题,如何在不同端或者是不同的登录方式下保证同一个...
一、前言: 我发现很多的同学都在抱怨说微信小程序的picker的mode = selector/mode = multiSelector 无...
前言: 之前自己做一个uni-app的项目的时候前端需要实现一个比较复杂的动态tab和swiper切换的功能,但是...