当前位置: 首页 > news >正文

小程序点击之数据绑定

<return />

<view class="all-wrap" style="padding-top:{{topHeight}}px;">

<view class="my-title">我的收藏</view>

<scroll-view

class="collect-list-container"

scroll-y

scroll-top="{{scrollTop}}"

refresher-enabled="{{true}}"

refresher-default-style="white"

refresher-triggered="{{isRefreshing}}"

bindrefresherrefresh="onPullDownRefresh"

>

<!-- 收藏列表 -->

<block wx:if="{{sortedKeys.length === 0}}">

<view class="collectList-nodata">暂无收藏内容</view>

</block>

<block wx:for="{{sortedKeys}}" wx:key="index" wx:for-item="type">

<view class="collect-part-title">{{type === 'FOOD' ? '美食卡' : (type === 'GOODS' ? '商品卡' : (type === 'ROUTE' ? '路线卡' : (type === 'KNOWLEDGE' ? '知识卡' : (type === 'ATTRACTION_VIEW' ? '景点卡' : (type === 'ATTRACTION_GUIDE' ? '讲解卡' : '')))))}}</view>

<scroll-view scroll-x class="collect-items">

<block wx:for="{{sortedCollects[type]}}" wx:key="id">

<view class="collect-item" bind:tap="onCardDetailAction">

<image class="collect-image" src="{{item.cardData.privData.imageUrl}}" mode="aspectFill"></image>

<text class="collect-name">{{item.cardData.name}}</text>

</view>

</block>

</scroll-view>

</block>

</scroll-view>

</view>
我们如果想要在onCardDetailAction关联绑定数据,应该如何呢?

在WXML中,你需要给每个收藏项绑定数据,这样在点击事件中才能获取到对应的item数据。以下是修改方案:

1. 修改WXML,添加data-item属性:

xml

<view class="collect-item" bind:tap="onCardDetailAction" data-item="{{item}}"><image class="collect-image" src="{{item.cardData.privData.imageUrl}}" mode="aspectFill"></image><text class="collect-name">{{item.cardData.name}}</text>
</view>

2. 修改JS,通过dataset获取数据:

javascript

// 卡片详情
onCardDetailAction(e) {console.log('卡片详情', e);// 获取绑定的item数据const item = e.currentTarget.dataset.item;console.log('点击的item数据:', item);// 这里可以继续处理跳转逻辑if (item && item.cardData) {const cardId = item.cardData.id;const cardType = item.cardData.type;const resourceId = item.cardData.resourceId;console.log('卡片ID:', cardId, '卡片类型:', cardType, '资源ID:', resourceId);// 根据卡片类型跳转到不同页面// wx.navigateTo({//   url: `/pages/cardDetail/cardDetail?cardId=${cardId}&type=${cardType}`// });}
}

3. 如果你需要更精确的数据,可以只绑定必要的数据:

xml

<!-- 只绑定必要的数据,减少数据传输量 -->
<view class="collect-item" bind:tap="onCardDetailAction" data-cardid="{{item.cardData.id}}" data-type="{{item.cardData.type}}"data-resourceid="{{item.cardData.resourceId}}"><image class="collect-image" src="{{item.cardData.privData.imageUrl}}" mode="aspectFill"></image><text class="collect-name">{{item.cardData.name}}</text>
</view>

对应的JS代码:

javascript

// 卡片详情
onCardDetailAction(e) {const dataset = e.currentTarget.dataset;console.log('卡片详情数据:', dataset);const cardId = dataset.cardid;const cardType = dataset.type;const resourceId = dataset.resourceid;console.log('卡片ID:', cardId, '卡片类型:', cardType, '资源ID:', resourceId);// 根据卡片类型跳转到不同页面// if (cardType === 'ATTRACTION_GUIDE') {//   wx.navigateTo({//     url: `/pages/guideDetail/guideDetail?id=${cardId}`//   });// } else if (cardType === 'FOOD') {//   wx.navigateTo({//     url: `/pages/foodDetail/foodDetail?id=${cardId}`//   });// }// ...其他类型处理
}

这样修改后,点击事件就能获取到对应的item数据了。建议使用第二种方式(只绑定必要数据),因为传输数据量更小,性能更好。

http://www.xdnf.cn/news/1440847.html

相关文章:

  • 深度学习三大框架对比评测:PaddlePaddle、PyTorch 与 TensorFlow
  • 从零开始的python学习——列表
  • OpenCV的阈值处理
  • 华为云Stack Deploy安装(VMware workstation物理部署)
  • LabVIEW信号频谱分析与限测系统
  • 190页经典PPT | 某科技集团数字化转型SAP解决方案
  • 开源 + 免费!谷歌推出 Gemini CLI,Claude Code 的强劲对手
  • Java设计模式之结构型—代理模式
  • leetcode算法刷题的第二十五天
  • Python:AI开发第一语言的全面剖析
  • Springboot3+SpringSecurity6Oauth2+vue3前后端分离认证授权-客户端
  • 【机器学习入门】5.4 线性回归模型的应用——从CO₂浓度预测学透实战全流程
  • 远程的 develop 比你本地的 develop 更新,Git 拒绝直接覆盖
  • 【55页PPT】旧QC七大手法培训精选讲义(附下载方式)
  • 深入解析Flowable工作流引擎:从原理到实践
  • 2 XSS
  • 深入掌握sed:Linux文本处理的流式编辑器利器
  • PHP如何解决使用国密SM4解密Base64数据错误问题?(基于lpilp/guomi)
  • 协议分析基础
  • 以技术共享点燃全球能源变革新引擎的智慧能源开源了
  • 低代码革命遇瓶颈?这个“套娃神技“才是破局关键!
  • 在Excel和WPS表格中隔多行插入一个空白行
  • 多场景对练数据的 Excel 横向导出方案(EasyExcel 动态表头实践)
  • 【XR硬件系列】Vivo Vision 与 Apple VisionPro 深度技术对比:MR 时代的轻量化革命与生态霸权
  • 单元测试数据库回滚问题
  • Android音频学习(十六)——CreateTrack
  • 资产管理还靠Excel?深度体验系统如何让企业高效数字化升级!
  • 自然语言处理深层语义分析中公理化体系的可行性、挑战与前沿进展
  • php:PHP 8 新特性深度解析与实战应用:提升开发效率的关键技巧
  • 为何 React JSX 循环需要使用 key