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


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 继承的实现
Jul 09 Javascript
JavaScript与Image加载事件(onload)、加载状态(complete)
Feb 14 Javascript
原生js和jQuery实现淡入淡出轮播效果
Dec 25 Javascript
jQuery模仿单选按钮选中效果
Jun 24 Javascript
简单谈谈Vue 模板各类数据绑定
Sep 25 Javascript
javascript动画之模拟拖拽效果篇
Sep 26 Javascript
正则表达式,替换所有HTML标签的简单实例
Nov 28 Javascript
JS图片压缩(pc端和移动端都适用)
Jan 12 Javascript
vue-router 学习快速入门
Mar 01 Javascript
老生常谈jquery中detach()和remove()的区别
Mar 02 Javascript
基于vue.js组件实现分页效果
Dec 29 Javascript
Vue CLI 3.x 自动部署项目至服务器的方法
Apr 02 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 $_ENV为空的原因分析
2009/06/01 PHP
php摘要生成函数(无乱码)
2012/02/04 PHP
php自定义函数截取汉字长度
2014/05/15 PHP
如何解决phpmyadmin导入数据库文件最大限制2048KB
2015/10/09 PHP
thinkPHP5.0框架URL访问方法详解
2017/03/18 PHP
Laravel框架在本地虚拟机快速安装的方法详解
2018/06/11 PHP
PHP CURL使用详解
2019/03/21 PHP
Java 正则表达式学习总结和一些小例子
2012/09/13 Javascript
web性能优化之javascript性能调优
2012/12/28 Javascript
JavaScript执行顺序详细介绍
2013/12/04 Javascript
bootstrap监听滚动实现头部跟随滚动
2016/11/08 Javascript
React BootStrap用户体验框架快速上手
2018/03/06 Javascript
koa-router源码学习小结
2018/09/07 Javascript
javascript中正则表达式语法详解
2020/08/07 Javascript
python logging类库使用例子
2014/11/22 Python
Python中optparse模块使用浅析
2015/01/01 Python
Python装饰器用法实例总结
2018/02/07 Python
python使用opencv按一定间隔截取视频帧
2018/03/06 Python
pycharm 将python文件打包为exe格式的方法
2019/01/16 Python
Pyinstaller打包.py生成.exe的方法和报错总结
2019/04/02 Python
python matplotlib imshow热图坐标替换/映射实例
2020/03/14 Python
详解pyinstaller生成exe的闪退问题解决方案
2020/06/19 Python
浅析Python 中的 WSGI 接口和 WSGI 服务的运行
2020/12/09 Python
DERMAdoctor官网:美国著名皮肤护理品牌
2019/07/06 全球购物
植村秀加拿大官网:Shu Uemura加拿大
2019/09/03 全球购物
电子信息专业学生自荐信
2013/11/09 职场文书
房产转让协议书
2014/04/11 职场文书
活动总结格式
2014/08/30 职场文书
技术入股合作协议书
2014/10/07 职场文书
2014年售后服务工作总结
2014/11/18 职场文书
小学教师工作总结2015
2015/04/07 职场文书
预备党员群众意见
2015/06/01 职场文书
导游词之昭君岛
2020/01/17 职场文书
Python中的matplotlib绘制百分比堆叠柱状图,并为每一个类别设置不同的填充图案
2022/04/20 Python
美国运营商 T-Mobile 以 117.83Mb/s 的速度排第一位
2022/04/21 数码科技
MutationObserver在页面水印实现起到的作用详解
2022/07/07 Javascript