小程序页面内容触底分页加载

调用接口,获取商品信息

<view class='btm'>
  <view class='btm-tit'>福利中心</view>
  <view class='welfare-list'>
     <view class="no-data" wx:if="{{goodList.length<=0}}">
      <image src="/images/zw_cnntent.png" mode="aspectFit"></image>
      <text>暂无相关内容哦~</text>
    </view>
    <block wx:for="{{goodList}}" wx:key="this3">
      <view class='welfare-detail'>
        <view class='good-img'>
        <image src="{{item.meg_cover}}"></image>
        </view>
        <view class='good-describe'>
          <view class='good-tit'>{{item.meg_name}}</view>
          <view class='good-content'>{{item.meg_brief}}</view>
          <view class='toExchange'>
            <text class='needSum'>{{item.meg_score}}福利</text>
            <view class='exchange-btn' bindtap='getWelfare' data-index='{{index}}' data-id='{{item.meg_id}}' data-type='{{item.meg_type}}'>兑换</view>
          </view>
        </view>
      </view>
    </block>
    <view class="nomore-tip" style="margin-top:-16rpx;" wx:if="{{noMoretip&&goodList.length>0}}">没有更多数据啦~</view> 
  </view>
</view>

逻辑、

page({
	data:{
	 goodList:[], //商品列表
	 page:0,	//商品页码
	 noMoretip: false,    //false为有更多数据,true为数据加载完毕
	},
	 onLoad: function () {
		this.getGoodList(); //请求列表
 	},
 	getGoodList:function(){
	    wx.showLoading({
	      title: '加载中',
		    })
		var page=this.data.page; //获取页码
		var that=this;
		// 发起请求,获取列表列表
    wx.request({
      url: app.globalData.requestUrl,
      data: {
      	map:xx,
      	page:page		
      },
      success: function (e) {
        if(e.data.ec==200){
          var allArr=[];   
          var initArr = that.data.goodList ? that.data.goodList : [];  //获取已加载的商品
          var newArr = e.data.data.goods;				//获取新加载的商品
          var lastPageLength = newArr.length;  			//新获取的商品数量
          if(page<=0){									//如果是第一页
            allArr = e.data.data.goods;
          }else{
            allArr = initArr.concat(newArr);		//如果不是第一页,连接已加载与新加载商品
          }
          if (lastPageLength < 10) {           //如果新加载的一页课程数量小于10,则没有下一页
            that.setData({
              noMoretip: true,
            });
          }
          that.setData({
            goodList: allArr,
          })
        }else{
          wx.showToast({
            title: res.data.em, 	 //错误信息
            icon:'none',
            duration:'2000'
          })
        }
        
      },
      fail:function(){
        wx.showToast({
          title: '网络错误',
          icon:'none'
        })
      },
      complete: function () {
        wx.hideLoading();
      }
    });
  },
  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {
    var page = this.data.page;  //获取现在页码
    if (!this.data.noMoretip){
      page++		
      this.setData({			//页码加一,调用函数,获取下一页内容
        page:page
      })
      this.getGoodList();
    }
  },
  //下拉刷新,要将商品列表,页码都改为初始值,否则会出现刷新之后商品的错乱
  onPullDownRefresh: function () {
    this.setData({
      page: 0,
      noMoretip: false,    //无更多
      goodList: [], //商品列表
    })
    this.getGoodList();
  },

})
	

展开阅读全文

没有更多推荐了,返回首页