作者:向朔1992,來自原文地址
一:navigator 跳轉(zhuǎn)url傳遞參數(shù)

使用方法說明
(1)傳值:在navigator的屬性u(píng)rl后拼接?id(參數(shù)名字)=要傳遞的值 (如果多個(gè)參數(shù)用&分開 &name=value&…….)
(2)取值:options 是包含url地址中參數(shù)的對(duì)象,可以直接 點(diǎn) 獲取。

擴(kuò)展
JS獲取web頁面地址欄中的參數(shù)。
-
https://www.google.co.jp/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=%E5%8D%8E%E4%BC%81&*
-
//獲取地址欄中的參數(shù)
-
function GetQueryString(name) {
-
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
-
var r = window.location.search.substr(1).match(reg);
-
-
if (r != null) {
-
return unescape(r[2]);
-
}
-
return null;
-
}
-
-
GetQueryString('sourceid')//chrome-instant
二:bindtap等事件傳參 什么是事件
事件是視圖層到邏輯層的通訊方式。 事件可以將用戶的行為反饋到邏輯層進(jìn)行處理。 事件可以綁定在組件上,當(dāng)達(dá)到觸發(fā)事件,就會(huì)執(zhí)行邏輯層中對(duì)應(yīng)的事件處理函數(shù)。 事件對(duì)象可以攜帶額外信息,如 id, dataset, touches。


看圖,因?yàn)樾枰獋鬟f的數(shù)據(jù)比較多,所以我們通過dataset攜帶參數(shù)信息。如果只有一個(gè)參數(shù),可以通過id來傳遞。
詳解(以常見的tap點(diǎn)擊事情為例)
wxml
-
<view id="tapTest" data-hi="WeChat" bindtap="tapName"> Click me! </view>
JS
-
Page({
-
tapName: function(event) {
-
console.log(event)
-
}
-
})
event 打印結(jié)果
-
{
-
"type":"tap",
-
"timeStamp":895,
-
/////////////////////////////////
-
"target": {
-
"id": "tapTest",
-
"dataset": {
-
"hi":"WeChat"
-
}
-
},
-
"currentTarget": {
-
"id": "tapTest",
-
"dataset": {
-
"hi":"WeChat"
-
}
-
},
-
///////////////////////////////
-
"detail": {
-
"x":53,
-
"y":14
-
},
-
"touches":[{
-
"identifier":0,
-
"pageX":53,
-
"pageY":14,
-
"clientX":53,
-
"clientY":14
-
}],
-
"changedTouches":[{
-
"identifier":0,
-
"pageX":53,
-
"pageY":14,
-
"clientX":53,
-
"clientY":14
-
}]
-
}
注意兩點(diǎn):
1、data-名稱 不能有大寫字母,如果需要,可以通過 - (中劃線)來連接單詞,編譯的時(shí)候小程序會(huì)將第二個(gè)單詞首字母自動(dòng)大寫。圖中代碼是為了自己標(biāo)志,所以第二個(gè)單詞的首字母大寫了,其實(shí)可以不用。data-* 屬性中不可以存放對(duì)象。
2、注意打印結(jié)果中target和currentTarget的區(qū)別。
target 觸發(fā)事件的源組件。 currentTarget 事件綁定的當(dāng)前組件。
如果你在父容器上綁定了事件并傳參,當(dāng)你點(diǎn)擊父容器時(shí),事件綁定的組件和觸發(fā)事件的源組件是同一個(gè)元素,所以currentTarget 、target 都可以拿到參數(shù),但是當(dāng)你點(diǎn)擊子元素時(shí),target 就不是事件綁定的組件了,所以拿不到參數(shù)。 由于事件冒泡的機(jī)制,父容器上綁定的事件依然可以觸發(fā),所以currentTarget 依然可以拿到參數(shù)。
說明
id傳參和dataset類似,只是最后獲取值的時(shí)候不同。event.currentTarget.id
|