微信小程序实现页面跳转传值以及获取值的方法分析


Posted in Javascript onDecember 18, 2017

本文实例讲述了微信小程序实现页面跳转传值以及获取值的方法。分享给大家供大家参考,具体如下:

在安卓中页面跳转传值都是通过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方式进行传递。前端小白总结,希望前端丰富的同学可以提供更多思路。

希望本文所述对大家微信小程序开发有所帮助。

Javascript 相关文章推荐
JQuery读取XML文件数据并显示的实现代码
Dec 16 Javascript
非常棒的10款jQuery 幻灯片插件
Jun 14 Javascript
基于jquery的时间段实现代码
Aug 02 Javascript
JS(JQuery)操作Array的相关方法介绍
Feb 11 Javascript
JavaScript多并发问题如何处理
Oct 28 Javascript
创建基于Bootstrap的下拉菜单的DropDownList的JQuery插件
Jun 02 Javascript
原生JS实现跑马灯效果
Feb 20 Javascript
图片加载完成再执行事件的实例
Nov 16 Javascript
vue刷新和tab切换实例
Feb 11 Javascript
解决微信小程序中转换时间格式IOS不兼容的问题
Feb 15 Javascript
vue-cli 为项目设置别名的方法
Oct 15 Javascript
微信小程序淘宝首页双排图片布局排版代码(推荐)
Oct 29 Javascript
10个在JavaScript开发中常遇到的BUG
Dec 18 #Javascript
详解webpack与SPA实践之开发环境搭建
Dec 18 #Javascript
javaScript中的空值和假值
Dec 18 #Javascript
浅谈Webpack自动化构建实践指南
Dec 18 #Javascript
微信小程序实现图片上传、删除和预览功能的方法
Dec 18 #Javascript
mockjs,json-server一起搭建前端通用的数据模拟框架教程
Dec 18 #Javascript
在knockoutjs 上自己实现的flux(实例讲解)
Dec 18 #Javascript
You might like
php getsiteurl()函数
2009/09/05 PHP
php封装的验证码工具类完整实例
2016/10/19 PHP
PHP iconv()函数字符编码转换的问题讲解
2019/03/22 PHP
jquery自动完成插件(autocomplete)应用之PHP版
2009/12/15 Javascript
超赞的jQuery图片滑块动画特效代码汇总
2016/01/25 Javascript
手机端实现Bootstrap简单图片轮播效果
2016/10/13 Javascript
Nodejs进阶:如何将图片转成datauri嵌入到网页中去实例
2016/11/21 NodeJs
JS基于正则表达式的替换操作(replace)用法示例
2017/04/28 Javascript
webpack下实现动态引入文件方法
2018/02/22 Javascript
vue引入axios同源跨域问题
2018/09/27 Javascript
Jquery遍历筛选数组的几种方法和遍历解析json对象,Map()方法详解以及数组中查询某值是否存在
2019/01/18 jQuery
vue使用recorder.js实现录音功能
2019/11/22 Javascript
JavaScript实现动态生成表格
2020/08/02 Javascript
python登录豆瓣并发帖的方法
2015/07/08 Python
深入浅出学习python装饰器
2017/09/29 Python
python使用wxpy实现微信消息防撤回脚本
2019/04/29 Python
六行python代码的爱心曲线详解
2019/05/17 Python
python 实现交换两个列表元素的位置示例
2019/06/26 Python
python3实现猜数字游戏
2020/12/07 Python
python的debug实用工具 pdb详解
2019/07/12 Python
Django框架安装方法图文详解
2019/11/04 Python
Python线程障碍对象Barrier原理详解
2019/12/02 Python
解决TensorFlow模型恢复报错的问题
2020/02/06 Python
如何在Python 游戏中模拟引力
2020/03/27 Python
Pytorch十九种损失函数的使用详解
2020/04/29 Python
香港优质食材和美酒专门店:FoodWise
2017/09/01 全球购物
世界上第一个创建了罩杯系统的美国内衣品牌:Maidenform
2019/03/23 全球购物
澳大利亚实惠时尚女装商店:Katies
2019/06/16 全球购物
搞笑的获奖感言
2014/08/16 职场文书
大学生上课迟到检讨书
2014/10/15 职场文书
2014年园林绿化工作总结
2014/12/11 职场文书
网络妈妈观后感
2015/06/08 职场文书
运动会宣传稿100字
2015/07/23 职场文书
超级详细实用的pycharm常用快捷键
2021/05/12 Python
浅谈Python中的函数(def)及参数传递操作
2021/05/25 Python
分析Python感知线程状态的解决方案之Event与信号量
2021/06/16 Python