小程序:获取当前点击的view的title和其他配置数据并传递给下一个页面

来看这样一个需求,有一个列表页,点击item的时候要把对应的标题和内容传到下一个页面

列表页
详情页

有了需求,咱们就开始干

1.配置item的数组,从接口获取,在.js文件中的onReady函数中完成网络请求


    /**
     * 生命周期函数--监听页面初次渲染完成
     */
    onReady: function () {

        var page = this;
        wx.request({
            url: this.data.base_url + '/' + this.data.url,
            data: {
                size: '4',
            },
            header: {
                // !!!这个参数要注意,post的时候要带上,否则服务器收不到post请求的数据
                "Content-Type": "application/x-www-form-urlencoded"  
            },
            method: 'post',
            dataType: '',
            success: function (res) {

                page.setData({
                    array: res.data.data,
                });
            },
            fail: function (res) {
                // console.log(res);
            },
            complete: function (res) {
                // console.log(res.data);
            },
        })
    },

2.在.wxml中用wx:for创建布局并绑定一个点击事件,使用data-添加自定义数据.这里我们要使用title和desc两个数据,就按照如下方式写:

<view class="topic">
    <view class="topic_item" wx:for="{{array}}" wx:key="aa" wx:for-index="idx" wx:for-item="item" bindtap="navToDetailPage" data-desc="{{item.description}}"  data-title="{{item.title}}">
        <image class="topic_item_image" src="{{item.thumb}}" mode="aspectFill"></image>
        <text>{{item.title}}</text>
    </view>
  </view>

3.在.js文件的点击事件中获取当前点击的view的绑定数据,并传递给下一个页面

页面跳转传递参数是采用url加参数的形式

navToDetailPage: function(option) {
        //option就是点击的view的data-title和data-desc
        console.log(option);
        wx.navigateTo({
            url: '../VideoDetail/VideoDetail?desc=' + option.currentTarget.dataset.desc+'&title='+option.currentTarget.dataset.title,
            success: function(res) {
                console.log(res);
            },
            fail: function(res) {},
            complete: function(res) {},
        })
    },
    hotvideotap: function(option) {
        wx.setNavigationBarTitle({
            title: option.currentTarget.dataset.id,
            success: function(res) {},
            fail: function(res) {},
            complete: function(res) {},
        })
    },

4.在详情页读取列表页传递来的两个参数

//---------------.js------------------
/**
   * 页面的初始数据
   */
  data: {
    title:'',
    desc:''
  },


/**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    console.log(options);
    this.setData({
        title: options.title,
        desc: options.desc
    });
  },

//---------------.wxml------------------
<view class="rootview">
  <text class="title">标题:{{title}}</text>
  <text class="desc">内容:{{desc}}</text>
</view>

End

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,560评论 25 708
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,993评论 19 139
  • 最令人动容的 不是酸不啦叽的情话 自以为的悲天悯怀 而是深藏在内心深处的 对人性的感知 无法言状的情感 是历经了岁...
    五色浮元子_阅读 105评论 0 0
  • 今天,总体来说还不错! 虽然,给自己定下的每天40分钟运动跑步今天没有完成,但是明天的我一定会补上的! 这是对明天...
    建min君阁下阅读 127评论 0 0
  • 金币闪亮亮的 发出动人的清响 从中可以窥见一个别样的 不敢奢求的未来 你的心颤抖了 灵魂在尘嚣中跳跃 你想告别风、...
    陈清伟阅读 186评论 0 1