直接代碼
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 解決。