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


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 EasyUI API 中文文档 - Dialog对话框
Nov 15 Javascript
IE的有条件注释判定IE版本详解(附实例代码)
Jan 04 Javascript
jQuery选择器源码解读(一):Sizzle方法
Mar 31 Javascript
在JS方法中返回多个值的方法汇总
May 20 Javascript
DIV+CSS+jQ实现省市联动可扩展
Jun 22 Javascript
js实现图片切换(动画版)
Dec 25 Javascript
利用Node.js+Koa框架实现前后端交互的方法
Feb 27 Javascript
angular2中router路由跳转navigate的使用与刷新页面问题详解
May 07 Javascript
Angular动画实现的2种方式以及添加购物车动画实例代码
Aug 09 Javascript
vue-router 手势滑动触发返回功能
Sep 30 Javascript
javascript设计模式 ? 模板方法模式原理与用法实例分析
Apr 23 Javascript
angular8.5集成TinyMce5的使用和详细配置(推荐)
Nov 16 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
调频问题解答
2021/03/01 无线电
基于mysql的论坛(2)
2006/10/09 PHP
Windows下IIS6/Apache2.2.4+MySQL5.2+PHP5.2.1安装配置方法
2007/05/03 PHP
PHP5.3的垃圾回收机制(动态存储分配方案)深入理解
2012/12/10 PHP
PHP实现多图上传和单图上传功能
2018/05/17 PHP
PHP变量的作用范围实例讲解
2020/12/22 PHP
jquery.validate分组验证代码
2011/03/17 Javascript
jQuery EasyUI API 中文文档 - TreeGrid 树表格使用介绍
2011/11/21 Javascript
javascript学习(二)javascript常见问题总结
2013/01/02 Javascript
javascript检测对象中是否存在某个属性判断方法小结
2013/05/19 Javascript
jquery实现标签上移、下移、置顶
2015/04/26 Javascript
浅析JavaScript中的事件机制
2015/06/04 Javascript
JS更改select内option属性的方法
2015/10/14 Javascript
AngularJs bootstrap搭载前台框架——基础页面
2016/09/01 Javascript
JS实现图片放大镜插件详解
2017/11/06 Javascript
vue2.0项目实现路由跳转的方法详解
2018/06/21 Javascript
使用elementUI实现将图片上传到本地的示例
2018/09/04 Javascript
使用react render props实现倒计时的示例代码
2018/12/06 Javascript
Vue运用transition实现过渡动画
2019/05/06 Javascript
Node.JS枚举统计当前文件夹和子目录下所有代码文件行数
2019/08/23 Javascript
这样回答继承可能面试官更满意
2019/12/10 Javascript
vue与iframe之间的信息交互的实现
2020/04/08 Javascript
解决python文件字符串转列表时遇到空行的问题
2017/07/09 Python
Python文本特征抽取与向量化算法学习
2017/12/22 Python
python实现树形打印目录结构
2018/03/29 Python
python实现类之间的方法互相调用
2018/04/29 Python
tensorflow 输出权重到csv或txt的实例
2018/06/14 Python
基于python连接oracle导并出数据文件
2020/04/28 Python
Html5实现单张、多张图片上传功能
2019/04/28 HTML / CSS
自我鉴定书范文
2013/10/02 职场文书
师范生的个人求职信范文
2014/01/04 职场文书
小学三年级数学教学反思
2014/01/31 职场文书
《生命 生命》教学反思
2014/04/19 职场文书
学生检讨书如何写
2014/10/30 职场文书
公司的力量观后感
2015/06/05 职场文书
员工规章制度范本
2015/08/07 职场文书