电竞比分网-中国电竞赛事及体育赛事平台

分享

微信小程序...

 cyfanz 2021-10-30

前提:

類似一個(gè)商城界面,從云數(shù)據(jù)庫(kù)拉取信息展示,用戶點(diǎn)擊某一個(gè)商品后,實(shí)現(xiàn)從數(shù)據(jù)庫(kù)查詢?cè)撋唐返膇d,實(shí)現(xiàn)跳轉(zhuǎn)。
在這里插入圖片描述
商城界面展示 (mall)
在這里插入圖片描述
詳情界面展示 (re-datail)

數(shù)據(jù)庫(kù):
在這里插入圖片描述

基本思路:

mall:
1.查詢數(shù)據(jù)表所有商品的信息,放到商城界面 mall.wxml的 imgList 數(shù)組里
2.在商城界面 mall.wxml 上通過(guò)wx-for渲染imgList數(shù)組,顯示需要的數(shù)據(jù),通過(guò)data-*為商品dataset id
3.在跳轉(zhuǎn)函數(shù)中獲取通過(guò)dataset的id,作為跳轉(zhuǎn)參數(shù)

re-detail:
1.接收傳過(guò)來(lái)的id參數(shù)
2.通過(guò)id查詢數(shù)據(jù)表中該id下的商品信息
3.wxml展示

代碼實(shí)現(xiàn)

mall.js:
一步一步來(lái):

 Page({
data: {
    imgList:[],///定一個(gè)接受數(shù)據(jù)的數(shù)組
  },
  onLoad: function (options) {  // 頁(yè)面初始化 options為頁(yè)面跳轉(zhuǎn)所帶來(lái)的參數(shù)
    let that=this //異步請(qǐng)求,所以let一個(gè)that
   
    wx.cloud.database().collection("prize").get({ ///查詢prize數(shù)據(jù)表中的數(shù)據(jù)(所有商品)
      success(res){       
        that.setData({ //通過(guò)setData,將res中的數(shù)據(jù)存入到imgList數(shù)組當(dāng)中
          imgList:res.data           
        }),
        console.log(res.data)   ///打印看一下   
      }
    })
})

在這里插入圖片描述
mall.wxml:
在這里插入圖片描述

<block wx:for="{{imgList}}">//渲染這個(gè)數(shù)組
<view class="goods" catchtap="onDetail" data-bzId="{{item._id}}">
<view class="limit">
<image src="{{item.prizeLink}}" mode="aspectFit" style="width:100%;height:100%"></image>
</view>
<text class="good-txt">{{item.prizeName}}</text>//顯示商品名稱
<text class="good-price">{{item.prizePrice}}金幣</text>//顯示商品價(jià)錢
</view>
</block>
<!-- 展示結(jié)束 -->

item就是小程序默認(rèn)的前綴,后面的名字是你數(shù)組中拿到的屬性值的名字

接下來(lái) 傳參跳轉(zhuǎn)。
mall.wxml:

<view class="goods" catchtap="onDetail" data-bzId="{{item._id}}">

綁定一個(gè)onDetail方法,使用data-屬性名來(lái)綁定該商品的id給bzId

關(guān)于data- 官方文檔給的解釋很明白
在這里插入圖片描述
我的理解就是綁定上一個(gè)參數(shù)

mall.js:

onDetail: function (e) {
    console.log(e)
  }

我們先來(lái)打印一下這個(gè)e

在這里插入圖片描述
有這么多的屬性 我們重點(diǎn)是這一條:
在這里插入圖片描述
currentTarget中的dataset里已經(jīng)有一條我們綁定好的bzid,并且你點(diǎn)擊不同的商品,它的bzid都是不同的,是唯一的。

關(guān)于currentTarget:

在這里插入圖片描述

關(guān)于dataset:
在這里插入圖片描述
所以我們var一個(gè)變量來(lái)接收id

onDetail: function (e) {
    console.log(e)
    var imgId = e.currentTarget.dataset.bzid;
     console.log("this id is " + imgId)
  }

打印看一下:
在這里插入圖片描述
imgId成功拿到值。

現(xiàn)在通過(guò)navigateTo跳轉(zhuǎn)頁(yè)面

onDetail: function (e) {
    console.log(e)
    var imgId = e.currentTarget.dataset.bzid;
    console.log("this id is " + imgId)
    wx.navigateTo({
      url: "../rewards-detail/re-detail?id=" + imgId   //?id連字符加上imgId
    });
  }

在這里插入圖片描述
現(xiàn)在是這個(gè)樣子了。 mall頁(yè)面配置完畢了

re-detail頁(yè)面:
js:

onLoad: function (e) {
    //指定id來(lái)加載對(duì)應(yīng)數(shù)據(jù)
    console.log(e)
}

還是老樣子 先打印一下e
在這里插入圖片描述
id已經(jīng)拿到了

在Page下的data中設(shè)置三個(gè)數(shù)組

 data: {
    imgDetail:[],//全部信息
    prizeLink:[],//商品圖片鏈接,是數(shù)據(jù)表中的一個(gè)字段
    prizePrice:[]商品價(jià)格,是數(shù)據(jù)表中的一個(gè)字段
  },
 onLoad: function (e) {
    //指定id來(lái)加載對(duì)應(yīng)數(shù)據(jù)
    console.log(e)
    let that=this//同樣的 異步請(qǐng)求,let一個(gè)that
    let a=e.id//聲明一個(gè)a,存e中的id
    // 頁(yè)面初始化 options為頁(yè)面跳轉(zhuǎn)所帶來(lái)的參數(shù)
    wx.cloud.database().collection("prize").where({ //查詢數(shù)據(jù)表prize下id為a所存放的id的信息
      _id:a
    }).get({
      success(res){
       // console.log(res)
        that.setData({ //給數(shù)據(jù)寫入數(shù)據(jù)
          imgDetail:res.data,
          prizeLink:res.data[0].prizeLink,
          prizePrice:res.data[0].prizePrice
        })
      }
    })   
  }

wxml:
在這里插入圖片描述

<view class="goods">
<text class="good-txt">{{prizeType}}</text>
<view class="limit">
<image src="{{prizeLink}}" mode="heightFix" style="width:100%;height:100%"></image>
</view>
  <view  class="buy" bindtap="buy"><text class="buy-txt">{{prizePrice}}金幣</text></view>
</view>

配置完畢。效果如下:
在這里插入圖片描述

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多