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


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 相关文章推荐
如何让动态插入的javascript脚本代码跑起来。
Jan 09 Javascript
js中关于String对象的replace使用详解
May 24 Javascript
GRID拖拽行的实例代码
Jul 18 Javascript
JavaScript中的函数的两种定义方式和函数变量赋值
May 12 Javascript
JS给Textarea文本框添加行号的方法
Aug 20 Javascript
DOM 事件的深入浅出(二)
Dec 05 Javascript
微信小程序 页面之间传参实例详解
Jan 13 Javascript
javascript 组合按键事件监听实现代码
Feb 21 Javascript
详谈vue+webpack解决css引用图片打包后找不到资源文件的问题
Mar 06 Javascript
laydate如何根据开始时间或者结束时间限制范围
Nov 15 Javascript
Mint UI实现A-Z字母排序的城市选择列表
Dec 28 Javascript
详解vue父子组件关于模态框状态的绑定方案
Jun 05 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
2019十大人气国漫
2020/03/13 国漫
smarty实例教程
2006/11/19 PHP
PHP大小写问题:函数名和类名不区分,变量名区分
2013/06/17 PHP
PHP设置一边执行一边输出结果的代码
2013/09/30 PHP
php中关于长度计算容易混淆的问题分析
2016/05/27 PHP
php的无刷新操作实现方法分析
2020/02/28 PHP
JS左右无缝滚动(一般方法+面向对象方法)
2012/08/17 Javascript
JavaScript中的onerror事件概述及使用
2013/04/01 Javascript
Extjs4中Form的使用之本地hiddenfield
2013/11/26 Javascript
js实现点击链接后延迟3秒再跳转的方法
2015/06/05 Javascript
js仿百度切换皮肤功能(html+css)
2016/07/10 Javascript
手机Web APP如何实现分享多平台功能
2016/08/19 Javascript
使用jquery给指定的table动态添加一行、删除一行
2016/10/13 Javascript
canvas 实现中国象棋
2017/02/17 Javascript
微信小程序带动画弹窗组件使用方法详解
2018/11/27 Javascript
详解vue项目接入微信JSSDK的坑
2018/12/14 Javascript
python异步任务队列示例
2014/04/01 Python
从零学Python之hello world
2014/05/21 Python
python通过yield实现数组全排列的方法
2015/03/18 Python
numpy添加新的维度:newaxis的方法
2018/08/02 Python
详解Python并发编程之从性能角度来初探并发编程
2019/08/23 Python
pandas中read_csv的缺失值处理方式
2019/12/19 Python
python 使用cx-freeze打包程序的实现
2020/03/14 Python
Django模板获取field的verbose_name实例
2020/05/19 Python
TensorFlow-gpu和opencv安装详细教程
2020/06/30 Python
Python不支持 i ++ 语法的原因解析
2020/07/22 Python
Myprotein亚太地区:欧洲第一在线运动营养品牌
2020/12/20 全球购物
应届生的求职推荐信范文
2013/11/30 职场文书
2014年移动公司工作总结
2014/12/08 职场文书
保送生自荐信范文
2015/03/26 职场文书
同事欢送会致辞
2015/07/31 职场文书
2016年校园重阳节广播稿
2015/12/18 职场文书
关于艺术节的开幕致辞
2016/03/04 职场文书
Python包argparse模块常用方法
2021/06/04 Python
在项目中使用redis做缓存的一些思路
2021/09/14 Redis
使用 CSS 构建强大且酷炫的粒子动画效果
2022/08/14 HTML / CSS