小程序前端接口數據對接


這幾天着手做一個商城小程序的答題系統,主要功能就是在線答題,提交答案,根據評分判定獎勵,然后到

商城兌換獎券,我呢,負責寫后台的接口,先來大概看一下吧:

可以看到,我這個提交答卷以供評分的接口,前台提供了答案,並且每題的答案要帶上這題的id,當時也是出於接口

處理起來方便的目的,for循環的時候,直接根據id查詢該題的答案並加以比較,算出得分。

然后小程序前端接口對接的時候,處理起來並沒有想象中那樣簡單,畢竟小程序很多地方還沒有摸透。但最終還是巧

妙地解決了問題。

<view class="s_answer pf_m border {{checked == index+1?'active':''}}" 
    data-index="{{index+1}}"
    data-exam="{{nowSubject.id}}"
    data-check="{{index==0?'A':index==1?'B':index==2?'C':index==3?'D':''}}"
    wx:for="{{nowSubject.answers}}" wx:key="index"
    catchtap='answerCheck'> {{index == 0?'A:':''}} {{index == 1?'B:':''}} {{index == 2?'C:':''}} {{index == 3?'D:':''}} {{item}} </view>

紅字是我為了將該題id和答案存入頁面變量所寫的,這個data-check當時也是抱着試試看的態度,沒想到三元運算符

當真可以有如此酷炫的玩法。(其實下面的選項內容前面的選項判斷也可以這么寫)

然后我們來看看這個catchtap方法,其實就相當於我們常見的單擊事件:

answerCheck:function(e){
    var that = this;
    var nowSubject = that.data.nowSubject;
    var index = e.target.dataset.index;
    var exam = e.target.dataset.exam;
    var check = e.target.dataset.check;
    var answerBox = that.data.answerBox;
    var sub = {};
    sub.id = exam;
    sub.answer = check; answerBox.push(sub);
    nowSubject.check = check;
    that.setData({
      checked:index,
      nowSubject: nowSubject,
      answerBox: answerBox,
      tNumber: 0
    })
  },

不用說,紅字又是我寫的,這里通過e.target.dataset.xxx獲取前台頁面綁定的data-exam和data-check,並且將其放

到一個對象變量sub中,再將這個對象push到數組answerBox中,最終20題,只要選項點擊了的話,那么該題的id和

選項都將作為對象存到頁面變量中。最后在題目答完之后將answerBox作為參數傳給提交答卷接口,大功告成!!!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM