① 小程序頁面傳遞數據 、傳遞數組對象 小程序傳值
(1)使用本地緩存
(2)通過頁面路由
在使用url進行參數傳遞時候,傳遞數據有位元組限制,如果要傳遞對象,需要先把對象通過JSON.stringify轉換成字元串,接收或再通過JSON.parse轉換成對象
demo
<template is="模板名" data="數據對象" />
A頁面跳轉到B頁面
頁面傳值
微信小程序 頁面傳值詳解
一. 跨頁面傳值.
1 . 用 navigator標簽傳值或 wx.navigator, 比如
這里將good_id=16 參數傳入detail頁面, 然後detail頁面的 onload方法內接受.
如果需要傳多個參數, 用 & 鏈接即可
如果要傳 數組, 字典等復雜類型, 要先用 JSON.stringify() 轉成字元串傳遞.
注 : 如果轉化的字元串中 有"?"這個符號, 則只會傳遞"?"以前的字元串, 這個問題我猜想可能是小程序內部的路由處理 對這個"?"敏感吧
好, 這是第一種 依靠跳轉的url帶參數傳值
2 . 用getCurrentPages(); 獲取棧中全部頁面的, 然後把數據寫入相應頁面
這里可以傳字元串, 也能傳數組等,
這樣就把 address 傳遞並接受了
注 : 這個方法適合 往後面傳值(即已經存在的頁面), 這樣才能在棧中找到並主動寫入數據, 且 一定要在 onshow() 方法中接受, 因為再次返回只執行onshow()方法.
3 . 寫入本地, 跨頁面在取出來 wx.setStorage/wx.getStorage等, 小程序中對寫入本地數據 封裝了很多方法, 各有側重, 這里就不多說了
4 . 把 數據聲明為全局變數
var detail = getApp().detail; 可在任何頁面獲取
二. 頁內傳值
1 . 設置id的方法標識跳轉後傳遞後的參數
在bindtap定義的點擊方法 swiperTap : function(e) ; 中獲取, var id = e.currentTarget.id;
2 . 設置 data-xxx 的方法來標識要傳遞的值
注 : 這里 data-index="{{index}}" 里的 {{index}} 是有效的, 在用wx-for 渲染視圖層時, index 代表點擊的下標. 在bindtap定義的點擊方法 swiperTap : function(e) ; 中獲取, 即 var index = e.currentTarget.dataset.index; 其他的參數取出也如此, var type = e.currentTarget.dataset.type;
3 . form表單和input輸入框
方法1:A頁面跳轉鏈接添加參數,B頁面onLoad 接收
方法2:設置全局變數 globalData,用的少,一般適用於全局共享的一份信息,如用戶open_id等
② 微信小程序如何操作數組
var a = [["a","b","c"],["d","e"],["1","2","3"]]
var b= ["4","5","6"]
a.push(b)
console.log(a)
直接用push()就可以了
③ 微信小程序怎麼取數組中的值
微信小程序 獲取javascript 里的數據
wxml如何獲取js里的數據
例:
wxml里:
1
<text id="twl">{{txt}}</text>
通過上面的{{txt}}可以對應獲取js里data下定義的txt的值
js里:
1234
data: { txt:{} }
首先在data里定義一個「容器」txt:{},{}內為空代表是從別的地方傳值進去,當然{}里也可以直接寫數據,如txt:{『123'},上面的wxml獲取了就相當於 <text id="twl">123</text>;通過其他方法傳值到容器里用一個this.setData({})的方法,如:
1234567891011
onLoad: function (options) { var ta=options.kind; this.setData({ txt:ta, }) },
這樣上面data里定義的txt的值就是ta的值了。
④ 微信小程序獲取JSON數據時遇到多維數組,請教如何獲取數據
1、在MYSQL中新建一個test資料庫,在裡面新建一張type數據表,下面將從該表獲得數據。