微信小程序中在wx;for中设置data-传参获取不到
时间: 2024-02-13 08:04:53 浏览: 82
在`wx:for`中设置`data-`属性传参时,需要注意以下几点:
1. `data-`属性中不能有大写字母,只能使用小写字母和中划线(-)。
2. 在`wx:for`中使用`data-`属性传参时,需要将`data-`属性设置在`template`标签上,而不是在`wx:for`标签上。
3. 在获取`data-`属性值时,需要使用`e.currentTarget.dataset`对象,其中`currentTarget`表示当前组件,`dataset`表示组件上所有以`data-`开头的自定义属性的集合。
以下是一个使用`wx:for`和`data-`属性传参的示例代码:
```
<template name="myTemplate">
<view data-index="{{index}}" data-name="{{item.name}}" bindtap="handleTap">
{{item.name}}
</view>
</template>
<view>
<template wx:for="{{list}}" wx:for-item="item">
<template is="myTemplate" data="{{index:{{index}},item:item}}"></template>
</template>
</view>
<script>
Page({
data: {
list: [
{ name: 'apple' },
{ name: 'banana' },
{ name: 'orange' }
]
},
handleTap: function(e) {
const index = e.currentTarget.dataset.index;
const name = e.currentTarget.dataset.name;
console.log('index:', index);
console.log('name:', name);
}
})
</script>
```
在上面的示例中,`myTemplate`模板中设置了两个`data-`属性:`data-index`和`data-name`。在`wx:for`中使用`myTemplate`模板,并将`index`和`item`传入模板中。在`handleTap`事件处理函数中,使用`e.currentTarget.dataset`获取`data-index`和`data-name`属性的值。
阅读全文