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


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 相关文章推荐
一样的table?不一样的table(可编辑状态table)
Sep 19 Javascript
jquery Validation表单验证使用详解
Sep 12 Javascript
jquery衣服颜色选取插件效果代码分享
Aug 28 Javascript
javascript拖拽应用实例(二)
Mar 25 Javascript
一道优雅面试题分析js中fn()和return fn()的区别
Jul 05 Javascript
JavaScript登录验证码的实现
Oct 27 Javascript
underscore之function_动力节点Java学院整理
Jul 11 Javascript
修改 bootstrap table 默认detailRow样式的实例代码
Jul 21 Javascript
vue项目刷新当前页面的三种方法
Dec 04 Javascript
Javascript如何实现双指控制图片功能
Feb 25 Javascript
vue 动态设置img的src地址无效,npm run build 后找不到文件的解决
Jul 26 Javascript
PHP 502bad gateway原因及解决方案
Nov 13 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判断字符以及字符串的包含方法属性
2008/08/30 PHP
PHP读取数据库并按照中文名称进行排序实现代码
2013/01/29 PHP
访问编码后的中文URL返回404错误的解决方法
2014/08/20 PHP
php设计模式之观察者模式实例详解【星际争霸游戏案例】
2020/03/30 PHP
extjs 学习笔记(三) 最基本的grid
2009/10/15 Javascript
js生成缩略图后上传并利用canvas重绘
2014/05/15 Javascript
jquery插件qrcode在线生成二维码
2015/04/26 Javascript
快速学习jQuery插件 Form表单插件使用方法
2015/12/01 Javascript
JS组件Bootstrap Table表格行拖拽效果实现代码
2020/08/27 Javascript
Bootstrap 最常用的JS插件系列总结(图片轮播、标签切换等)
2016/07/14 Javascript
jQuery实现智能判断固定导航条或侧边栏的方法
2016/09/04 Javascript
javascript 中null和undefined区分和比较
2017/04/19 Javascript
Ionic2开发环境搭建教程
2020/08/20 Javascript
详解刷新页面vuex数据不消失和不跳转页面的解决
2018/01/30 Javascript
新版vue-cli模板下本地开发环境使用node服务器跨域的方法
2018/04/03 Javascript
vue 巧用过渡效果(小结)
2018/09/22 Javascript
使用Vuex解决Vue中的身份验证问题
2018/09/28 Javascript
微信小程序实现下拉菜单切换效果
2020/03/30 Javascript
微信小程序页面缩放式侧滑效果的实现代码
2018/11/15 Javascript
JS学习笔记之数组去重实现方法小结
2019/05/29 Javascript
基于JavaScript 实现拖放功能
2019/09/12 Javascript
Vue项目结合Vue-layer实现弹框式编辑功能(实例代码)
2020/03/11 Javascript
Python打印scrapy蜘蛛抓取树结构的方法
2015/04/08 Python
Mac 上切换Python多版本
2017/06/17 Python
13个最常用的Python深度学习库介绍
2017/10/28 Python
Django模板Templates使用方法详解
2019/07/19 Python
pandas DataFrame创建方法的方式
2019/08/02 Python
Tensorflow tf.nn.depthwise_conv2d如何实现深度卷积的
2020/04/20 Python
The Hut美国/加拿大:英国领先的豪华在线百货商店
2019/03/26 全球购物
大学毕业生的自我鉴定
2013/11/30 职场文书
暑期研修感言
2014/02/17 职场文书
奥巴马开学演讲稿
2014/05/15 职场文书
挂牌仪式策划方案
2014/05/18 职场文书
作弊检讨书
2015/01/27 职场文书
后勤个人工作总结
2015/02/28 职场文书
新娘婚礼答谢词
2015/09/29 职场文书