收藏
回答

wx:for 列表渲染,如何能够复制其中某个字段内容?

云数据库查询后成功返回一个数组bookinfo, 其需要在wxml界面使用wx:for进行渲染,这些都能成功做到。

这里在JS里只会用bookinfo作为wxml渲染的基础数组。由于wx:for渲染后,会有很多条块(其中一块渲染又包含多条记录),只想复制其中每块渲染的orderNo记录到粘贴板,如何能做到?我下面的代码在copyOrderNo()中肯定是错的,自己也知道,但是由于经验能力有限想不出如何实现,请高手指点一二。感谢了。

WXML代码:

<view class="searchbookInfowx: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="lineHbindtap="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

            })

          }

        })

      }

    })

  },


最后一次编辑于  2020-07-14
回答关注问题邀请回答
收藏

3 个回答

  • 白宦成 #Linux中国
    白宦成 #Linux中国
    2020-07-14
    <text id="{{index}}" data-id="{{item.orderNo}}" class="lineH" bindtap="copyOrderNo">单号: {{item.orderNo}}</text>
    
    


    然后在 CopyOrderNo 中取 item.currentTarget.dataset

    2020-07-14
    有用 1
    回复
  • Jason_亮 🇨🇳
    Jason_亮 🇨🇳
    2020-07-14

    感谢感谢如此迅速的反馈,然后在 CopyOrderNo() 中Data如何写?

    Option A--. Data: item.currentTarget.dataset

    Option B---Data: that.data.item.currentTarget.dataset

    还是其他写法?

    2020-07-14
    有用
    回复
  • G-STEPS街舞工作室
    G-STEPS街舞工作室
    2020-07-14

    可以是 html 的元素上绑定数据 data-orderno="{{item.orderNo}}" 这样

    <text id="{{index}}" data-orderno="{{item.orderNo}}" class="lineHbindtap="copyOrderNo">单号: {{item.orderNo}}</text>
    // js 里这样获取
    
    copyOrderNo(e) {
      var orderNo = event.currentTarget.dataset.orderno; // 拿到单号
      // 调用 copy方法就行
      }
        
    
    2020-07-14
    有用
    回复 5
    • Jason_亮 🇨🇳
      Jason_亮 🇨🇳
      2020-07-14
      谢谢,WXML按照你写的,JS的代码如下,粘贴板的值一直是copyOrderNo,为何?
        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
                  })
                }
              })
            }
          })
        },
      2020-07-14
      回复
    • Jason_亮 🇨🇳
      Jason_亮 🇨🇳
      2020-07-14
      且 ‘内容已复制’ 的成功弹窗也没有了
      2020-07-14
      回复
    • Jason_亮 🇨🇳
      Jason_亮 🇨🇳
      2020-07-14
      已解决,谢谢了。师傅领进门,修行在个人,哈哈。感谢感谢
      2020-07-14
      回复
    • G-STEPS街舞工作室
      G-STEPS街舞工作室
      2020-07-16回复Jason_亮 🇨🇳
      好呢,哈哈哈哈哈哈
      2020-07-16
      回复
    • xT
      xT
      2021-04-11回复Jason_亮 🇨🇳
      这么解决的?我也遇到这个问题了
      2021-04-11
      回复
登录 后发表内容
问题标签