直接代碼
wxml代碼片段
<view class='ranksList' wx:for="{{ranksLb}}"> <view class='ranksListName'><image src='../image/icon-21.png'></image><text>{{item.name}}</text></view> <view class='ranksListNum'><label>下級:</label><text bindtap='tosubordinate' data-workerId='{{item.id}}'>{{item.subordinateNum}}-{{item.id}}</text></view> <view class='ranksListIphone'><image src='../image/icon-22.png'></image><text>{{item.mobile}}</text></view> </view>
js代碼片段
//事件處理函數 tosubordinate: function (e) { var workerId = e.currentTarget.dataset.workerId; console.log("workerId------" + workerId); wx.navigateTo({ url: '../subordinate/subordinate?workerId=' + workerId }) },
結果 workerId undefined。
OK,重點便在這里。在組件中可以定義數據,這些數據將會通過事件傳遞給 SERVICE。 書寫方式: 以data-開頭,多個單詞由連字符-鏈接,不能有大寫(大寫會自動轉成小寫)如data-element-type,最終在 event.target.dataset 中會將連字符轉成駝峰elementType。
這里寫圖片描述
看代碼可知,這里是自定義了一個名字為id的dataset,因此在事件函數中,我們可以通過e.currentTarget.dataset.id訪問到綁定到該組件的自定義數據。
修改:
//事件處理函數 tosubordinate: function (e) { var workerId = e.currentTarget.dataset.workerid; console.log("workerId------" + workerId); wx.navigateTo({ url: '../subordinate/subordinate?workerId=' + workerId }) },
主要修改了 e.currentTarget.dataset.workerid.
workerId –> workerid 解決。