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


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命令汇总,方便使用jquery的朋友
Jun 26 Javascript
jquery动态添加删除div 具体实现
Jul 20 Javascript
jquery win 7透明弹出层效果的简单代码
Aug 06 Javascript
总结AngularJS开发者最常犯的十个错误
Aug 31 Javascript
AngularJS全局警告框实现方法示例
May 18 Javascript
Bootstrap Multiselect 常用组件实现代码
Jul 09 Javascript
ES6 javascript中class静态方法、属性与实例属性用法示例
Oct 30 Javascript
Angular实现下拉框模糊查询功能示例
Jan 03 Javascript
关于ES6箭头函数中的this问题
Feb 27 Javascript
关于Angularjs中自定义指令一些有价值的细节和技巧小结
Apr 22 Javascript
基于JS抓取某高校附近共享单车位置 使用web方式展示位置变化代码实例
Aug 27 Javascript
javascript贪吃蛇游戏设计与实现
Sep 17 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 动态多文件上传
2009/01/18 PHP
解析PHP缓存函数的使用说明
2013/05/10 PHP
PHP的基本常识小结
2013/07/05 PHP
thinkphp关于简单的权限判定方法
2017/04/03 PHP
如何通过Apache在本地配置多个虚拟主机
2020/07/29 PHP
js中更短的 Array 类型转换
2011/10/30 Javascript
JavaScript使用focus()设置焦点失败的解决方法
2014/09/03 Javascript
纯JavaScript实现的兼容各浏览器的添加和移除事件封装
2015/03/28 Javascript
使用 TypeScript 重新编写的 JavaScript 坦克大战游戏代码
2015/04/07 Javascript
探究Javascript模板引擎mustache.js使用方法
2016/01/26 Javascript
轻松实现js选项卡切换效果
2016/09/24 Javascript
Webpack实现按需打包Lodash的几种方法详解
2017/05/08 Javascript
详解Vue中一种简易路由传参办法
2017/09/15 Javascript
Vue+Flask实现简单的登录验证跳转的示例代码
2018/01/13 Javascript
微信小程序中使用自定义图标(阿里icon)的方法
2018/08/20 Javascript
vue首次赋值不触发watch的解决方法
2018/09/11 Javascript
详解promise.then,process.nextTick, setTimeout 以及 setImmediate的执行顺序
2018/11/21 Javascript
使用Python程序抓取新浪在国内的所有IP的教程
2015/05/04 Python
基于python实现的抓取腾讯视频所有电影的爬虫
2016/04/22 Python
python求最大连续子数组的和
2018/07/07 Python
numpy.std() 计算矩阵标准差的方法
2018/07/11 Python
python+opencv+caffe+摄像头做目标检测的实例代码
2018/08/03 Python
Python发送邮件功能示例【使用QQ邮箱】
2018/12/04 Python
python自动化测试之异常及日志操作实例分析
2019/11/09 Python
pyinstaller 3.6版本通过pip安装失败的解决办法(推荐)
2020/01/18 Python
Python datetime 格式化 明天,昨天实例
2020/03/02 Python
tensorflow指定CPU与GPU运算的方法实现
2020/04/21 Python
python可迭代对象去重实例
2020/05/15 Python
CSS3 简单又实用的5个属性
2010/03/04 HTML / CSS
购买限量版收藏品、珠宝和礼品:Bradford Exchange
2016/09/23 全球购物
大三自我鉴定范文
2013/10/05 职场文书
机械机修工岗位职责
2014/08/03 职场文书
2014年中班下学期工作总结
2014/12/11 职场文书
《迟到》教学反思
2016/02/24 职场文书
2016年庆祝六一儿童节活动总结
2016/04/06 职场文书
python数字图像处理数据类型及颜色空间转换
2022/06/28 Python