微信小程序跨頁面傳值


微信小程序跨頁面傳值

'''
1. 獲取當前頁面

var pages = getCurrentPages();


2. //獲取上一個頁面

var prevPage = pages[pages.length - 2];  


3. 更新/賦值上一頁面的值,並返回上一頁面

getCurrentPages() 與 wx.navigateBack()結合使用
'''

發布頁面/pages/publish/publish

1. // /pages/publish/publish.wxml

<navigator url="/pages/topic/topic" class="row" >
  <view class="left">{{topicTitle}}</view>
  <view class="right">
    <image class="go-icon" src='/static/images/icon/to_icon_show_small.png'></image>
  </view>
</navigator>


2. // pages/publish/publish.js

data: {
	topicId: null,
	topicTitle: "選擇合適的話題",
},


updateTopic: function(item) {
	this.setData({
	  topicId: item.id,
	  topicTitle: item.title
	})
},

話題頁面/pages/topic/topic(更新值:topicItem)

1. <!--pages/topic/topic.wxml-->
<view class="container">
  <view class="row" wx:for="{{topicList}}" data-item="{{item}}" bindtap="choseTopic">
  <text># {{item.title}}</text>
  <text>關注點 {{item.count}}</text>
  </view>
</view>


2. // pages/topic/topic.js

choseTopic:function(event){
  var topicItem = event.currentTarget.dataset['item'];
  var pages = getCurrentPages();
  var prevPage = pages[pages.length - 2];  //上一個頁面
  prevPage.updateTopic(topicItem);
  wx.navigateBack()
}

示例二:賦值(收貨地址選擇) --prevPage.setData

1. <!--pages/chooseAddress/chooseAddress.wxml-->
<input placeholder="收貨人姓名" bindinput="inputUser" value="{{address.name}}" />
<input placeholder="收貨人電話" bindinput="inputPhone" value="{{address.phone}}" />
<textarea placeholder="詳細地址" bindinput="inputDetail" value="{{address.detail}}" ></textarea>
<button bindtap="addAddress">添加</button>

<radio-group class="radio-group" bindchange="radioChange">
	<view class="item" wx:for="{{addressList}}" wx:key="index">
	  <radio class="radio" value="{{index}}">
		<text>{{item.name}} -{{item.phone}}-{{item.detail}}</text>
	  </radio>
	</view>
</radio-group>


2. // pages/chooseAddress/chooseAddress.js

data: {
  addressList: [],
  address: {
  name: "",
  phone: "",
  detail: ""
}
},
radioChange:function(e){
	var pages = getCurrentPages();
	var prevPage = pages[pages.length - 2];  //上一個頁面
	
	var index = e.detail.value;
	var address = this.data.addressList[index];
	prevPage.setData({
	  address: address
	})
	wx.navigateBack();
  },


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM