云数据库查询后成功返回一个数组bookinfo, 其需要在wxml界面使用wx:for进行渲染,这些都能成功做到。
这里在JS里只会用bookinfo作为wxml渲染的基础数组。由于wx:for渲染后,会有很多条块(其中一块渲染又包含多条记录),只想复制其中每块渲染的orderNo记录到粘贴板,如何能做到?我下面的代码在copyOrderNo()中肯定是错的,自己也知道,但是由于经验能力有限想不出如何实现,请高手指点一二。感谢了。
WXML代码:
<view class="searchbookInfo" wx:if="{{isShowByDate}}" wx:for="{{bookInfo}}" wx:key="_id">
<view class="lineH">时间:{{item.Date}}</view>
<view class="lineH">时段:{{item.SlotTime}}</view>
<view class="lineH">仓库:{{item.selectedwhs}}</view>
<text id="{{index}}" class="lineH" bindtap="copyOrderNo">单号: {{item.orderNo}}</text>
<view class="lineH">体积: {{item.cbmNo}}</view>
</view>
JS 复制剪贴板代码:(略去如何获取bookinfo数组内容,已经成功的),点击下面图片中成功渲染的各个“单号”,这里复制显示成功,但是粘贴板无内容。核心困难我也知道,应该是wx.setClipboardData() 中的 data: that.data.index, 没有写对!请高手指导,对于数组数据,且在前台渲染如何写这个data的值,查了微信开发解释,这里仅是string.
copyOrderNo() {
console.log(this.data.index)
let that=this
wx.setClipboardData({
data: that.data.index,
success(res) {
wx.getClipboardData({
success(res) {
console.log("复制成功",res.data) // data
that.setData({
orderNo:res.data
})
}
})
}
})
},
<text id="{{index}}" data-id="{{item.orderNo}}" class="lineH" bindtap="copyOrderNo">单号: {{item.orderNo}}</text>
然后在 CopyOrderNo 中取 item.currentTarget.dataset
感谢感谢如此迅速的反馈,然后在 CopyOrderNo() 中Data如何写?
Option A--. Data: item.currentTarget.dataset
Option B---Data: that.data.item.currentTarget.dataset
还是其他写法?
可以是 html 的元素上绑定数据 data-orderno="{{item.orderNo}}" 这样
<text id="{{index}}" data-orderno="{{item.orderNo}}" class="lineH" bindtap="copyOrderNo">单号: {{item.orderNo}}</text> // js 里这样获取 copyOrderNo(e) { var orderNo = event.currentTarget.dataset.orderno; // 拿到单号 // 调用 copy方法就行 }
copyOrderNo(event) {
console.log("event",event)
var orderNo = event.currentTarget.dataset.orderno
let that=this
console.log("orderNo",orderNo)
wx.setClipboardData({
data:orderNo,
success(res) {
console.log("orderNo",orderNo)
wx.getClipboardData({
success(res) {
console.log("复制成功",res.data) // data
that.setData({
orderNo:res.data
})
}
})
}
})
},