1. 程式人生 > >微信小程式實現頁面跳轉傳值以及獲取值的方法分析

微信小程式實現頁面跳轉傳值以及獲取值的方法分析

本文例項講述了微信小程式實現頁面跳轉傳值以及獲取值的方法。分享給大家供大家參考,具體如下:

在安卓中頁面跳轉傳值都是通過bundle,現在研究一下小程式的列表跳轉及頁面傳值。

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: '聯絡客服',
   index: 5
  }, {
   icon: '../../images/iconfont-help.png',
   text: '常見問題',
   index: 6
  }]
 },
 onLoad: function () {
  var that = this
  //呼叫應用例項的方法獲取全域性資料
  app.getUserInfo(function (userInfo) {
   //更新資料
   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();
  //設定全域性的請求訪問傳遞的引數
  app.requestId = e.currentTarget.id;
  app.requestIndex = index;
 }
})

微信小程式設定id的方法標識來傳值

在要跳轉的item處,設定一個id並給當前的id賦值上對應的key值,
如 id="{{item.index}}"
後我們在js的bindtap的響應事件中獲取,並傳遞到下一個介面中;
獲取到id傳的值
通過e.currentTarget.id;獲取設定的id值,並通過設定全域性物件的方式來傳遞數值,
獲取全域性物件 var app=getApp(); //設定全域性的請求訪問傳遞的引數 app.requestDetailid=id;
在除錯模式下:我們也可以在,wxml中檢視到我們設定的每一個item的id值

通過使用data - xxxx 的方法標識來傳值

通過使用data - xxxx 的方法標識來傳值,xxxx可以自定義取名 比my.wxml中的data-index。
如何獲取data-xxxx傳遞的值?
在js的bindtap的響應事件中:
通過資料解析一層層找到資料,var id=e.target.dataset.index

(根據你的data-id的取名)
如js中的兩個列印就是通過兩種不同方式獲得的id。

微信小程式如何跨頁面獲取值

依據上面的方式設定要傳遞的值,頁面跳轉後,我們就需要在下一個頁面拿到傳遞的資料(這個資料在傳遞前,就已經被設定成全域性變數)相當於給全域性變數添加了新的key,value
在跳轉後的js頁面,接收傳遞過來的資料detail.js
同樣通過全域性額方式取值出來,(即和app.js中取某個變數的值是一樣的)

var id=getApp().requestId;
var index=getApp().requestIndex;
console.log(id);
console.log(index);

通過連結傳參:

wx.navigateTo({
 url: '/pages/account/feedback/feedback?test=feedback_test&name=jia',
 success: function(res) {},
 fail: function(res) {},
 complete: function(res) {},
})

點選頁面跳轉時通過?方式傳參。在跳轉後的頁面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);
 },

感覺比較好的方法還是通過連結方式進行引數傳遞,第一種有些像安卓中進行頁面跳轉,把一些傳遞的引數寫到Application中,第二種是像通過bundle方式進行傳遞。前端小白總結,希望前端豐富的同學可以提供更多思路。

希望本文所述對大家微信小程式開發有所幫助。

原文連結:http://blog.csdn.net/jia635/article/details/73810079

相關推薦

程式實現頁面以及獲取方法分析

本文例項講述了微信小程式實現頁面跳轉傳值以及獲取值的方法。分享給大家供大家參考,具體如下:在安卓中頁面跳轉傳值都是通過bundle,現在研究一下小程式的列表跳轉及頁面傳值。my.wxml<view class="container"> <view bind

程式(5)--頁面(點選item

one頁面實現以下程式碼: 1,data-id="{{item.id}}"為標記列表的下標, item.id的來源與wx:for="{{ components }}"的列表渲染 bindtap="re

程式--實現按鈕另一個頁面

首先建立一個按鈕 在 index.wxml頁面中建立一個容器作為按鈕 <view class='day-weather' bindtap='onTapDayWeather'> </

程式--簡單頁面

微信小程式--簡單頁面跳轉 例如:點選一個text ,跳轉入一個新的頁面blueberry.wxml 首先對text 設定監聽事件  <view bindtap="toast" cla

程式頁面

在json配置路徑,會自動生成對應的css\js\json(例如:test.wxss\test.js\test.json) 頁面跳轉兩種方法 一種通過js,一種通過頁面 第一種:在要點選跳轉的標籤上加事件,3步, 如:1、要在點選文字上跳轉 <view

程式頁面

年前最後一天上班了,公司幾個人在上班,沒事做,還是來學習一下小程式吧。 本部落格說一下頁面跳轉,頁面跳轉又分為三種:跳轉新頁面,當前頁面跳轉及tab跳轉。 先來看看navigator相關屬性: 直接程式碼說話: 主頁面: <!--index

程式 navigate頁面問題解決方案

最近在跟著別人做外包小程式,在跳轉的時候遇到很大的問題 ,由於微信小程式的navigateBack是不會重新整理原來頁面的,所以當我要做到如下邏輯時,感到十分困惑,同時覺得無法控制後退按鈕指向頁面這一設定十分不科學。 先來看看問題所在,例如我要實現如下頁面邏輯

程式頁面和引數傳遞,頁面生命週期

頁面的生命週期函式如下: Page({   data:{        },   onLoad:function(options){     // 生命週期函式--監聽頁面載入     console.log("---index page onLoad---")   },

程式-navigator頁面

純方便自己看 2種跳轉方法: 一:(函式) 模組中有點選事件,bindtap或者catchtap這種,在本頁面的js裡設定函式 XXXXX: function () { wx.navigateTo({ url: "../logs/logs",

程式頁面時如何傳遞一個物件

必須在需要跳轉的頁面中先使用 JSON.stringify(obj)對需要傳遞的物件資料進行轉換(轉換為json格式的資料), 把轉換後的資料 接在 url後面。最後在跳轉顯示的頁面先使用JSON.parse(json) 轉換為js型別的資料。 例: 在跳轉需要跳轉的頁面 i

程式實現頁面內的——scroll-view

微信小程式實現頁面內的跳轉——scroll-view 需求:在頁面內我們常常會寫這樣一個效果,一個a標籤href=”#id” 點選會跳轉到本頁面的某個模組。微信小程式裡我們要實現這個效果需要用到scroll-view元件 問題:我第一次嘗試這個元件的時候應用到自己的專案裡

關於程式的動態頁面

最近在研究微信小程式。在做一個簡單的購物小程式時,遇到一個問題:如何通過掃碼實現動態的跳轉頁面功能, 通過研究終於找到了解決方法: 首先當然要實現掃碼解析功能js的程式碼: 1 2 3 4 5 6 7 8 9 10 11 12 13

解決程式使用switchTab頁面不重新整理的問題

wx.switchTab({ url: '../index/index', success: function (e) { var page = get

程序--簡單頁面

nav on() ott url tex bsp function toa toast 首先對text 設置監聽事件 <view bindtap="toast" class="usermotto"> <text class="user-mott

程序之頁面

spa 今天 style color log code body 微信 navigate 如今 微信小程序已經充滿的我們的生活,那麽今天我就來說一說微信小程序中的最基礎的 頁面跳轉 1. wx.navigateTo(保留當前頁面,跳轉到應用內的某個頁面,使用wx.nav

程式--navigator url 失效

在編輯微信小程式的時候,遇到的坑,使用 <navigator url='/pages/logs/logs'>跳轉</navigator>進行跳轉失效 了,進行多次測試發現,當頁面中的跳轉路徑與app.json中配置的tabBar 相重複時,頁面中的跳轉會失效,不

mpvue程式之間的navigator標籤的坑 ,接收不到extra-data傳遞的物件

老方法即將廢棄,在這裡就不多說了,在mpvue裡這個方法其實是有坑的 navigator標籤官方文件,詳細介紹去這裡看 A小程式 <navigator target="miniProgram" open-type="navigate" app-i

程式例項:到頂部例項

      總所周知,小程式不能操作dom,那麼我們要怎麼實現在頁面滾動到一定條件的時候,顯示gotop圖示,點選後跳轉到頁面的頂部呢?       這裡小程式有個元件是可以實現的,那就是scroll-view元件,他具有很多的屬性,其中我們要利用到以下兩個屬性來處理: s

程式tabbar的問題

如果在app.json 配置tabbar 的時候配置了 跳轉的頁面的連結; 在其餘的子頁面,設定用navigator 進行跳轉會發現 在tabbar 設定過的頁面無法進行跳轉,這時需要在navigator 里加上open-type="switchTab" 例如:  &l

程式帶引數遊戲

小遊戲的預設路徑是 pages/index/index wx.navigateToMiniProgram({ appId: 'wxef98a1fd370dd5ac', path:'pages/index/index?channcelCod