小程序自定义组件slot节点的dataset如何获取
发布于 6 年前 作者 houjuan 3125 次浏览 来自 问答

希望在自定义组件根节点捕获slot节点内的事件的dataset,但没有获取到

5 回复

我好像明白了你的意思。。貌似,你的组件按钮没有给bindtap绑定啊

@璋卿 

我在根节点捕获插入到<slot>的元素的点击事件(即我代码中button元素的点击),可以捕获到事件,但是dataset为空的,也就是我这边,你代码中的evt.currentTarget.dataset为空

@璋卿 

我是在根节点使用 'capture-bind:tap=“xxx”'来捕获事件,也试了bindtap在冒泡时候获取事件,同样没拿到dataset。 主要场景是在写一个埋点脚本时,希望做一个父容器组件,每个页面引入这个父容器组件,这样可以在根元素代理所有点击事件

你好,这个是我们的一个限制。组件无法获取自己slot中实际节点的相关信息。

/**
   * 组件的方法列表
   */
  methods: {
    onTapForToastTab(evt){
      var config = {
        tabIndex: evt.currentTarget.dataset.index
      };
      this.triggerEvent("onTapForToastTab", config)

    }

我是在自定义组件的js中绑定了事件,然后传参给使用的地方,比如我这种写法就想获取到tabIndex,就在使用它的方法里通过event.detail.tabIndex获取,自定义组件的属性返回要通过triggerEvent来向目标方法传参的,不知道你问的是不是这个…

回到顶部