收藏
回答

Component自定义组件 事件如何触发

问题模块
API和组件





组件:

methods: {

   _emitMyEvent: function () {

   this.triggerEvent('myevent', {})

   }

}





<component-tag-name inner-text="Some text1" bindmyevent="onMyEvent" >component-tag-name>



Page({

 onMyEvent: function(e){   console.log(e);//没有触发  } })

好奇怪文档上面这样写的,就是没有触发onMyEvent事件

最后一次编辑于  2017-11-16
回答关注问题邀请回答
收藏

14 个回答

  • HY
    HY
    2017-11-16

    恩,我刚刚试了,可以,通过troggerEvent的第二个参数,然后在页面的e.detail对象获取到了组件的数据.


    2017-11-16
    赞同
    回复
  • 小程序技术专员-LastLeaf
    小程序技术专员-LastLeaf
    2017-11-16

    可以的,请参见文档。

    2017-11-16
    赞同
    回复
  • HY
    HY
    2017-11-16

    恩,明白了,谢谢你哦!可以传递数据吗?比如你写的,可以传递数据给change方法吗?

    2017-11-16
    赞同
    回复
  • 小程序技术专员-LastLeaf
    小程序技术专员-LastLeaf
    2017-11-16

    比如基础库中的switch组件,它的change事件是在tap时候触发的,实现是这样:


    // switch.js
    Component({
      onTap: function(){
        this.triggerEvent('change')
      }
    })


    <view bindtap="onTap" />


    2017-11-16
    赞同
    回复
  • HY
    HY
    2017-11-16

    意思是在

    onMyEvent: function (e) {

     

      },

    方法调用triggerEvent?这怎么调用呀,好难理解呀!

    2017-11-16
    赞同
    回复
  • 小程序技术专员-LastLeaf
    小程序技术专员-LastLeaf
    2017-11-16

    比如监听tap事件,在bindtap回调函数中主动调用一下triggerEvent。

    2017-11-16
    赞同
    回复
  • HY
    HY
    2017-11-16

    哦,主动触发呀!

    2017-11-16
    赞同
    回复
  • HY
    HY
    2017-11-16

    要另外调用这个triggerEvent?怎么调用呀? _emitMyEvent这个方法我放在生命周期函数里面,自动调用了,我想点击调用的!

    2017-11-16
    赞同
    回复
  • 小程序技术专员-LastLeaf
    小程序技术专员-LastLeaf
    2017-11-16

    事件当然是要组件主动触发的。

    2017-11-16
    赞同
    回复
  • HY
    HY
    2017-11-16

    还要调用triggerEvent呀,我在生命周期函数中调用了_emitMyEvent方法,自动调用了myevent方法,我想点击调用方法来着,不知道怎么实现.

    2017-11-16
    赞同
    回复

正在加载...