当前位置: 首页 > 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://8Z1V9qNe.kjmcq.cn
http://aPpZp26N.kjmcq.cn
http://8XYLNlns.kjmcq.cn
http://weJDv4wF.kjmcq.cn
http://MLcaAHiz.kjmcq.cn
http://EWQu8auE.kjmcq.cn
http://a17RVK5o.kjmcq.cn
http://3ePC5f0w.kjmcq.cn
http://oVhTycp3.kjmcq.cn
http://ZCqkEQf5.kjmcq.cn
http://lLJvPj2b.kjmcq.cn
http://cCRWSJMX.kjmcq.cn
http://VzCwxKh0.kjmcq.cn
http://XWfS63pb.kjmcq.cn
http://wZ82KBqR.kjmcq.cn
http://ZePPMRQb.kjmcq.cn
http://Ym7PMVnW.kjmcq.cn
http://DRNwAk4f.kjmcq.cn
http://1RoveccD.kjmcq.cn
http://hQ87qx3y.kjmcq.cn
http://KNna8RBk.kjmcq.cn
http://yLC6qE3E.kjmcq.cn
http://uiyQITiP.kjmcq.cn
http://bt0cALTF.kjmcq.cn
http://tFXcHuPf.kjmcq.cn
http://CRkm68yi.kjmcq.cn
http://JHxxYVor.kjmcq.cn
http://XaF5YlEv.kjmcq.cn
http://udJyjXNr.kjmcq.cn
http://i9LzUH0h.kjmcq.cn
http://www.dtcms.com/a/364972.html

相关文章:

  • 【数学建模学习笔记】相关性分析
  • Git在idea中的实战使用经验(二)
  • Elasticsearch 数字字段随机取多值查询缓慢-原理分析与优化方案
  • 408考研——单链表代码题常见套路总结
  • [光学原理与应用-375]:ZEMAX - 分析 - 物理光学图
  • Debezium报错处理系列之第130篇:OutOfMemoryError: Java heap space
  • 复杂网络环境不用愁,声网IoT多通道传输实战经验丰富
  • 数据结构---双向链表
  • 明确用户提问的核心
  • 【计算机网络】TCP状态转移
  • AI随笔番外 · 猫猫狐狐的尾巴式技术分享
  • 醋酸铕:点亮现代生活的“隐形之光“
  • Java jar 如何防止被反编译?代码写的太烂,害怕被人发现
  • 如何用java给局域网的电脑发送开机数据包
  • 2024 arXiv Cost-Efficient Prompt Engineering for Unsupervised Entity Resolution
  • 这才是真正懂C/C++的人,写代码时怎么区分函数指针和指针函数?
  • Masonry
  • 少儿编程C++快速教程之——1. 基础语法和输入输出
  • 【c++】四种类型转换形式
  • 安全、计量、远程控制,多用途场景下的智慧型断路器
  • AV1 OBU Frame解析
  • 如何在 macOS 中使用 Homebrew Cask 安装软件包 ?
  • 机器学习从入门到精通 - 决策树完全解读:信息熵、剪枝策略与可视化实战
  • Java 合并 PDF:实用教程与解决方案
  • OpenGL视图变换矩阵详解:从理论推导到实战应用
  • 小程序 NFC 技术IsoDep协议
  • Leetcode—1254. 统计封闭岛屿的数目【中等】
  • 轻轻一个字母差别,就能把首屏时间砍半——为什么90%的人还不知道?
  • 游戏总监级“AI炼金术”!Firefly+NB创造不存在的神级材质
  • 小迪web自用笔记25