微信小程序中wxml事件绑定传参

微信小程序之开发遇到 does not have a method “xxxx“ to handle event “tap“ 问题的解决方案【已解决】 在配置中找不到方法,所以在点击响应时,会有警告,但是程序运行不会报错。这也是小白在学习小程序时经常容易犯的错误,今天竟然把一个开发了多个小程序的我给呆住了,现在就来分析一下产生这个问题的原因有哪些。 阅读详情

小程序中wxml事件绑定传参

在wxml中不能在bindtap中直接绑定事件时直接传入参数,html常见的操作例如:

<!--wxml-->
<view bindtap="selectNav(2)">2</view>

<!--js-->
selectNav: function(num){
    console.log(num)
}

会导致:VM27200:1 Component “pages/home/home” does not have a method “selectNav(2)” to handle event "tap"的错误,猜测是将selectNav(2)作为完整字符串去js文件中匹配相关的方法名,匹配失败后返回该报错。

既然不能直接传参,就只能通过属性传参,在bindtap事件触发后,返回的结果如下

changedTouches: [{…}]
currentTarget: {id: "", offsetLeft: 126, offsetTop: 1, dataset: {…}}
detail: {x: 203.8203125, y: 20.98828125}
mark: {}
mut: false
target: {id: "", offsetLeft: 126, offsetTop: 1, dataset: {…}}
timeStamp: 4322
touches: [{…}]
type: "tap"

在target和currentTarget均包含了相关的id和dataset属性。

关于target和currentTarget的区别:event.target指向引起触发事件的元素,而event.currentTarget则是事件绑定的元素,只有被点击的那个目标元素的event.target才会等于event.currentTarget。

所以这里使用currentTarget来绑定相关数据,而id只能绑定一个数据,显然不符合要求。

<!--wxml-->
<view class="nav-item iconfont iconfangjian {{navItem == 2 ? 'active': ''}}" bindtap="selectNav" data-num="2">

<!--js-->
selectNav: function ({ currentTarget }) {
    // console.log(res)
    this.setData({
        "navItem": currentTarget.dataset.num
    })
},

此时bindtap返回结果如下:

changedTouches: [{…}]
currentTarget:
    dataset: {num: "2"}
    id: ""
    offsetLeft: 126
    offsetTop: 1
    __proto__: Object
detail: {x: 174.96875, y: 19.390625}
mark: {}
mut: false
target: {id: "", offsetLeft: 126, offsetTop: 1, dataset: {…}}
timeStamp: 3516
touches: [{…}]
type: "tap"

在selectNav中通过解构赋值, currentTarget.dataset.num获取传递的参数num。

【微信小程序自习室#003】WXML 微信小程序 差值表达式 动态绑定 数据绑定 阅读详情

相关推荐

STM32G0实战:手把手教你用国产GD25Q16 Flash存储传感器数据(附完整驱动)

本文详细介绍了如何使用国产GD25Q16 Flash芯片与STM32G0系列MCU实现传感器数据存储的完整方案。从SPI接口配置、驱动层实现到存储系统架构设计,提供了实战代码和优化策略,帮助开发者快速构建高性价比的物联网数据存储系统。

weixin_30733003的博客 106

微信小程序:Component “页面路径“ does not have a method “ 方法名“ to handle event “tap“.

微信小程序:Component "页面路径" does not have a method " 方法名" to handle event "tap".

xuantaiyang888的博客 6万+

Python数据分析实战:用TIGRAMITE库5步搞定时间序列因果分析(附完整代码)

本文详细介绍了如何使用TIGRAMITE库进行时间序列因果分析,通过5个步骤从环境配置到模型优化,帮助读者掌握因果关系库的应用。附完整代码示例,适合数据分析师和研究人员快速实现复杂时间序列的因果发现。

weixin_29050271的博客 160

微信小程序 - 点击事件传递参数(简单详细)

在小程序开发的时候,有时候需要在点击事件触发之后拿到一个参数做为使用,小程序不像 Vue 可以直接点击事件中放参数,而小程序它只能通过自定义属性进行绑定参数使用。 .wxml 中使用 <view bindtap="touchAction" data-index="1">点击</view> .js 中接收 touchAction: function(e) { // 传递的参数 let query = e.currentTarget.dataset['index..

卡尔特斯 1万+

骚戴笔记公告

骚戴笔记公告

我从不打没有准备的仗! 2万+

平头哥面试——芯片工程师面经

有5个成递增关系的32bit地址值,彼此之间的间隔大小不确定,可以把他们当成parameter来输入模块,现有一个32bit输入数据,要求用尽量少资源去的判断这个数处于哪2个地址之间(地址区间),并且输出区间号。a)后续大概会在9月下旬谈具体的薪资,他们现在也没想好今年应届生的薪资该给多少,到时候如果可以签三方的话可能会跳过意向书环节直接发offer,谈薪资肯定是通过电话来。b. 这边的CPU是自己研制的(玄铁),成都这边主要做存储和网络,都有SOC。a. 成都这边的网络部门具体做的业务有哪些?

FPGA/MATLAB学习教程/源码/项目合作开发 2688

【微信小程序篇-03】深入理解小程序的事件和wxml语法

深入理解小程序的事件和wxml语法

m0_59269218的博客 2197

让 ABAP 开发更聪明的搭档:SAP Joule for Developers 与 ABAP AI Capabilities 全面实战

摘要:SAP已将生成式AI集成到ABAP开发工具中,推出Joule for Developers功能。该功能直接嵌入Eclipse开发环境,提供代码解释、生成、测试构造和遗留代码迁移等辅助功能。Joule支持ABAP Cloud项目开发,能围绕当前开发对象提供上下文相关的建议,帮助开发者高效完成应用开发与迁移任务。启用该功能需升级ADT并获取相应许可,典型应用场景包括RAP应用构建和S/4HANA迁移中的代码重构。官方资源提供了多个实践案例,帮助开发者快速上手这一AI辅助开发功能。(149字)

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 492

微信小程序(4)- 事件系统和模板语法

事件传参:在触发事件时,将一些数据作为参数传递给事件处理函数的过程,就是事件传参。在微信小程序中,我们经常会在组件上添加一些自定义数据,然后在事件处理函数中获取这些自定义数据,从而完成业务逻辑的开发。在组件上 通过data-*的方式 定义需要传递的数据,其中* 是自定义的属性,然后通过事件对象进行获取自定义数据。event.target 是指事件触发者, event. currentTarget 是指事件绑定者。

一个人的江湖 2008

【深度学习|语义分割之UNet】如何使用ResNet50 作为 U-Net 网络的骨干网络(backbone)并使用预训练的 ResNet50 模型。附代码及解读。

【深度学习|语义分割之UNet】如何使用ResNet50 作为 U-Net 网络的骨干网络(backbone)并使用预训练的 ResNet50 模型。附代码及解读。

985小水博的摸鱼日常 3091

github创建账号第一步始终出错

github创建账号总结:第一次注册GitHub,填好用户名邮箱密码后进入下一步就卡在哪里,上面还提示Unable to verify your captcha response等,进入网址的解决办法以及下载其他的浏览器也无法解决,用手机浏览器抱着试一试的心态竟然成功了,分享给大家。手机下载谷歌浏览器,进入GitHub正常注册,能向下继续,邮箱验证完以后再用电脑登陆就ok啦

计算机毕业论文源码,学生个人网页制作html源码。贴近用户做网络推广和互联网优化。 4376

【知识点】微信小程序事件及事件传参

此文主要讲解微信小程序中事件绑定,以及事件传参的知识点,欢迎大家享用哦~👇👇

程序员云阶的博客 3237

遥感影像建筑物变化检测

遥感影像建筑物变化检测

yilvyangguang520的博客 423

微信小程序31~40

按钮

The_era_achievs_的博客 1006

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

第三篇:微信小程序的【WXML模板】配合【JS】的代码编写

Pages({data: {定义的数据1:xxx,定义的数据2:xxx,......},......})Page({data: {p: "js里的data"})跟数据库一样,微信小程序希望每个列表数据都有主键,以防止出现重复冗余数据wx:key=""设置主键,里面不需要再{{}}这样写,直接写属性名就行还有,对象的话就设置id为主键,没有的话直接设置下标index也可以例子:前面的例子我没有设置wx:key,它就会报警告那么我都给他们设置index下标为主键就行了。

m0_73991249的博客 2660

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

微信小程序WXML-列表渲染与事件绑定

​ https://developers.weixin.qq.com/miniprogram/dev/component/2.1 wx:if​ 在框架中,使用wx:if=“” 来判断是否渲染该代码块​ block元素可以将多个组件包装起来,使用wx:if属性, 不是一个组件,仅仅是一个包装元素 2.2 wx:for​ 控制属性绑定一个数组, 即可使用数组中的各项数据重复渲染该组件。​ 默认数组的当前项 下标变量默认为index,数组当前项的变量默认为item。​ 使用 可以指定数组当前元素的变量名

weixin_55800388的博客 711

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

WXML模板语法--事件绑定

因为小程序会把 bindtap 的属性值,统一当作事件名称来处理,相当于要调用一个名称为 btnHandler(123)的事件处理函数。在小程序中,不存在 HTML 中的 onclick 鼠标点击事件,而是通过 tap 事件来响应用户的触摸行为。target 是触发该事件的源头组件,而 currentTarget 则是当前事件所绑定的组件。小程序中的事件传参比较特殊,不能在绑定事件的同时为事件处理函数传递参数。点击内部的按钮时,点击事件以冒泡的方式向外扩散,也会触发外层view的tap 事件处理函数。

2302_79430373的博客 1039

微信小程序 - 03_wxml模板语法(数据绑定_{{data}}、事件绑定_bindtap_bindimput、事件传参、条件渲染_wx:if_hidden、列表渲染_wx:for_wx:key)

文章目录wxml模板语法01 数据绑定02 事件绑定2.1 小程序中常用的事件2.2 事件对象的属性列表2.3 bindtap语法格式2.3.1 在事件处理函数中为data中的数据赋值2.3.2 事件传参2.4 bindinput语法格式2.4.1 实现文本框和data之间的数据同步03 条件渲染3.1 wx:if3.2 结合block标签使用wx:if3.3 hidden3.4 wx:if与hidden的对比04 列表渲染4.1 wx:for4.1.1 手动指定索引和当前想的变量名*4.1.2 wx:ke

文泽路小男孩的博客 1361

前端之 微信小程序的常见使用知识点和面试题

/ 输出: { data: 'test' }:保留当前页面,跳转到应用内的某个非 tabBar 页面。:关闭当前页面,跳转到应用内的某个非 tabBar 页面。:关闭当前页面,返回上一页面或多级页面。在跳转的 URL 中携带参数,目标页面通过。:关闭所有页面,打开到应用内的某个页面。获取当前的页面栈,决定需要返回几层。// 页面加载时的初始化操作。// 页面加载时的初始化操作。// 下拉刷新时触发的操作。// 下拉刷新时触发的操作。

weixin_44009071的博客 1118

【星海随笔】微信小程序(二)

如果为True 则隐藏, 还支持 display: none/block 控制元素的显示和隐藏。在target 属性中,可以看到 dataset 属性的 info 属性 为传参的值。通过事件可以将用户在渲染层产生的行为, 反馈到逻辑层进行业务的处理 .支持的函数包括: Math.random().toFixed(2) .使用block能够隐藏原来的 view ,在 html 中隐藏。wx:if 是以创建和移除元素的方式进行控制元素的展示于隐藏。把 data 中的数据绑定到页面中渲染,使用。

weixin_41997073的博客 1255

WXML模板语法

我们所要学习的WXML模板语法有五种: 1.数据绑定 2.事件绑定与事件传参 4.条件渲染 5.列表渲染 1.数据绑定 数据绑定的基本原则: 1.在data中定义数据 2.在WXML中使用数据 定义数据和使用数据类似于VUE,如果学习过VUE再学习小程序就会比较容易 1.在data中定义数据 在data区域以key,value的形式就可以绑定数据了,用逗号分隔 Page({ data: { // 定义的字符串数据类型 wd:"ssa",

weixin_54542834的博客 663

微信小程序开发 学习笔记[031~037节]

bind 后面需要跟上冒号,冒号后面跟上事件名,例如: <view bind:tap="fnName"></view>小程序中绑定事件与在网页开发中绑定事件几乎一致, 只不过在小程序不能通过on的方式绑定事件,也没有click 等事件,方法进行修改,setData() 方法接收对象作为参数,key 是需要修改的数据,value 是最新的值。使用bind绑定的事件,会触发事件冒泡,如果想阻止事件冒泡,可以使用catch来绑定事件。如果想获取view身上的数据,就必须使用currentTarget 才可以。

JennyZH211的博客 1343

微信小程序学习之数据绑定,事件绑定,事件传参与数据同步的学习记录

在data中定义数据,找到页面对应的.js文件,然后把数据定义到data中即可。/*** 页面的初始数据// 字符串类型的数据、 info : 'init data' , // 数组类型的数据 msgList : [ {在微信小程序绑定事件时,绑定的是事件名,所以无法通过绑定事件时传递参数,但是可以通过自定义属性来传递参数 data-* 的方式错误的事件传参< button bindtap = " btnTapHandler(123) " > 点我传递参数

m0_63622279的博客 4022

【web】微信小程序笔记小结(模板与配置)

WXML+WXSS模板样式

weixin_61096287的博客 2799
上一篇: h5混合开发加载优化问题
下一篇: ES6+版本新特性
cjvalue
博客等级 码龄8年 4粉丝 16原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值