微信小程序?qū)崿F(xiàn)頁(yè)面跳轉(zhuǎn)傳值以及獲取值的方法分析
本文實(shí)例講述了微信小程序?qū)崿F(xiàn)頁(yè)面跳轉(zhuǎn)傳值以及獲取值的方法。分享給大家供大家參考,具體如下:
在安卓中頁(yè)面跳轉(zhuǎn)傳值都是通過(guò)bundle,現(xiàn)在研究一下小程序的列表跳轉(zhuǎn)及頁(yè)面?zhèn)髦怠?/p>
my.wxml
<view class="container"> <view bindtap="bindViewTap" class="userinfo"> <image class="userinfo-avatar" src="{{userInfo.avatarUrl}}" background-size="cover"></image> <text class="userinfo-nickname">{{userInfo.nickName}}</text> </view> <view class="info_list"> <block wx:for="{{userListInfo}}" > <view class="weui_cell" data-index="{{item.index}}" id="{{item.index}}" bindtap="userinfo_item"> <view class="weui_cell_hd"> <image src="{{item.icon}}"></image> </view> <view class="weui_cell_bd"> <view class="weui_cell_bd_p"> {{item.text}} </view> </view> <view wx:if="{{item.isunread}}" class="badge">{{item.unreadNum}}</view> <view class="with_arrow"></view> </view> </block> </view> </view>
my.js
var app = getApp() Page({ data: { userInfo: {}, userListInfo: [{ icon: '../../images/iconfont-dingdan.png', text: '我的訂單', isunread: true, unreadNum: 2, index:1 }, { icon: '../../images/iconfont-kefu.png', text: '聯(lián)系客服', index: 5 }, { icon: '../../images/iconfont-help.png', text: '常見(jiàn)問(wèn)題', index: 6 }] }, onLoad: function () { var that = this //調(diào)用應(yīng)用實(shí)例的方法獲取全局?jǐn)?shù)據(jù) app.getUserInfo(function (userInfo) { //更新數(shù)據(jù) that.setData({ userInfo: userInfo }) }) }, userinfo_item: function (e) { var index = e.target.dataset.index; console.log("----index----" + index) console.log('-----id-----' + e.currentTarget.id) var app = getApp(); //設(shè)置全局的請(qǐng)求訪問(wèn)傳遞的參數(shù) app.requestId = e.currentTarget.id; app.requestIndex = index; } })
微信小程序設(shè)置id的方法標(biāo)識(shí)來(lái)傳值
在要跳轉(zhuǎn)的item處,設(shè)置一個(gè)id并給當(dāng)前的id賦值上對(duì)應(yīng)的key值,
如 id="{{item.index}}"
后我們?cè)趈s的bindtap的響應(yīng)事件中獲取,并傳遞到下一個(gè)界面中;
獲取到id傳的值
通過(guò)e.currentTarget.id;
獲取設(shè)置的id值,并通過(guò)設(shè)置全局對(duì)象的方式來(lái)傳遞數(shù)值,
獲取全局對(duì)象 var app=getApp();
//設(shè)置全局的請(qǐng)求訪問(wèn)傳遞的參數(shù) app.requestDetailid=id;
在調(diào)試模式下:我們也可以在,wxml中查看到我們?cè)O(shè)置的每一個(gè)item的id值
通過(guò)使用data - xxxx 的方法標(biāo)識(shí)來(lái)傳值
通過(guò)使用data - xxxx 的方法標(biāo)識(shí)來(lái)傳值,xxxx可以自定義取名 比my.wxml中的data-index。
如何獲取data-xxxx傳遞的值?
在js的bindtap的響應(yīng)事件中:
通過(guò)數(shù)據(jù)解析一層層找到數(shù)據(jù),var id=e.target.dataset.index
(根據(jù)你的data-id的取名)
如js中的兩個(gè)打印就是通過(guò)兩種不同方式獲得的id。
微信小程序如何跨頁(yè)面獲取值
依據(jù)上面的方式設(shè)置要傳遞的值,頁(yè)面跳轉(zhuǎn)后,我們就需要在下一個(gè)頁(yè)面拿到傳遞的數(shù)據(jù)(這個(gè)數(shù)據(jù)在傳遞前,就已經(jīng)被設(shè)置成全局變量)相當(dāng)于給全局變量添加了新的key,value
在跳轉(zhuǎn)后的js頁(yè)面,接收傳遞過(guò)來(lái)的數(shù)據(jù)detail.js
同樣通過(guò)全局額方式取值出來(lái),(即和app.js中取某個(gè)變量的值是一樣的)
var id=getApp().requestId; var index=getApp().requestIndex; console.log(id); console.log(index);
通過(guò)鏈接傳參:
wx.navigateTo({ url: '/pages/account/feedback/feedback?test=feedback_test&name=jia', success: function(res) {}, fail: function(res) {}, complete: function(res) {}, })
點(diǎn)擊頁(yè)面跳轉(zhuǎn)時(shí)通過(guò)?方式傳參。在跳轉(zhuǎn)后的頁(yè)面JS中做如下接收:
onLoad: function (e) { var movieid = getApp().requestId; var movieIndex = getApp().requestIndex; console.log("-----feedback--movieid--" + movieid +" " + movieIndex); console.log("-----feedback--test--" + e.test); console.log("-----feedback--name--" + e.name); },
感覺(jué)比較好的方法還是通過(guò)鏈接方式進(jìn)行參數(shù)傳遞,第一種有些像安卓中進(jìn)行頁(yè)面跳轉(zhuǎn),把一些傳遞的參數(shù)寫(xiě)到Application中,第二種是像通過(guò)bundle方式進(jìn)行傳遞。前端小白總結(jié),希望前端豐富的同學(xué)可以提供更多思路。
希望本文所述對(duì)大家微信小程序開(kāi)發(fā)有所幫助。
- 微信小程序 頁(yè)面跳轉(zhuǎn)傳參詳解
- 微信小程序 頁(yè)面跳轉(zhuǎn)和數(shù)據(jù)傳遞實(shí)例詳解
- 微信小程序 詳解頁(yè)面跳轉(zhuǎn)與返回并回傳數(shù)據(jù)
- 微信小程序?qū)崿F(xiàn)點(diǎn)擊文字頁(yè)面跳轉(zhuǎn)功能【附源碼下載】
- 微信小程序 頁(yè)面跳轉(zhuǎn)傳遞值幾種方法詳解
- 微信小程序 頁(yè)面跳轉(zhuǎn)事件綁定的實(shí)例詳解
- 詳解微信小程序 頁(yè)面跳轉(zhuǎn) 傳遞參數(shù)
- 微信小程序 頁(yè)面跳轉(zhuǎn)如何實(shí)現(xiàn)傳值
- 微信小程序常見(jiàn)頁(yè)面跳轉(zhuǎn)操作簡(jiǎn)單示例
- 微信小程序之五種頁(yè)面跳轉(zhuǎn)方法小結(jié)
相關(guān)文章
javascript數(shù)組常見(jiàn)操作方法實(shí)例總結(jié)【連接、添加、刪除、去重、排序等】
這篇文章主要介紹了javascript數(shù)組常見(jiàn)操作方法,結(jié)合實(shí)例形式總結(jié)分析了javascript數(shù)組的連接、添加、刪除、去重、排序等操作,代碼注釋附帶較為詳細(xì)的說(shuō)明,需要的朋友可以參考下2019-06-06element-ui?對(duì)話框dialog使用echarts報(bào)錯(cuò)'dom沒(méi)有獲取到'的問(wèn)題
這篇文章主要介紹了element-ui?對(duì)話框dialog里使用echarts,報(bào)錯(cuò)'dom沒(méi)有獲取到'的問(wèn)題,在這個(gè)事件里邊進(jìn)行echarts的初始化,執(zhí)行數(shù)據(jù),本文結(jié)合實(shí)例代碼給大家詳細(xì)講解,需要的朋友可以參考下2022-11-11Javascript柯里化實(shí)現(xiàn)原理及作用解析
這篇文章主要介紹了Javascript柯里化實(shí)現(xiàn)原理及作用解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-10-10JS使用隊(duì)列對(duì)數(shù)組排列,基數(shù)排序算法示例
這篇文章主要介紹了JS使用隊(duì)列對(duì)數(shù)組排列,基數(shù)排序算法,涉及javascript隊(duì)列的定義、使用,基數(shù)排序?qū)崿F(xiàn)方法等相關(guān)操作技巧,需要的朋友可以參考下2019-03-03利用JavaScript腳本實(shí)現(xiàn)滾屏效果的方法
這篇文章主要介紹了利用JavaScript腳本實(shí)現(xiàn)滾屏效果的方法,即一個(gè)公告欄顯示般的效果,需要的朋友可以參考下2015-07-07JS基于設(shè)計(jì)模式中的單例模式(Singleton)實(shí)現(xiàn)封裝對(duì)數(shù)據(jù)增刪改查功能
這篇文章主要介紹了JS基于設(shè)計(jì)模式中的單例模式(Singleton)實(shí)現(xiàn)封裝對(duì)數(shù)據(jù)增刪改查功能.結(jié)合實(shí)例形式分析了javascript基于單例模式結(jié)合ajax針對(duì)數(shù)據(jù)庫(kù)進(jìn)行增刪改查的相關(guān)操作技巧,需要的朋友可以參考下2018-02-02JavaScript取得鼠標(biāo)絕對(duì)位置程序代碼介紹
文章介紹了關(guān)于JavaScript在不同瀏覽器下取得鼠標(biāo)絕對(duì)位置相關(guān)函數(shù)用法及兼容性介紹,有需要的同學(xué)可參考一下2012-09-09javascript 網(wǎng)站常用的iframe分割
就是一個(gè)頁(yè)面使用兩個(gè)iframe來(lái)調(diào)用內(nèi)容,實(shí)現(xiàn)頁(yè)面導(dǎo)航,更容易控制,可控制性好2008-06-06