组件:
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事件
可以的,请参见文档。
比如基础库中的switch组件,它的change事件是在tap时候触发的,实现是这样:
// switch.js
Component({
onTap:
function
(){
this
.triggerEvent(
'change'
)
}
})
<
view
bindtap
=
"onTap"
/>
比如监听tap事件,在bindtap回调函数中主动调用一下triggerEvent。
事件当然是要组件主动触发的。
目前有个bug导致bind:myevent有时候不会生效,你可以先把冒号去掉来规避一下。
然后检查一下你调用triggerEvent的时机是否正确。
恩,我刚刚试了,可以,通过troggerEvent的第二个参数,然后在页面的e.detail对象获取到了组件的数据.
恩,明白了,谢谢你哦!可以传递数据吗?比如你写的,可以传递数据给change方法吗?
意思是在
onMyEvent: function (e) {
},
方法调用triggerEvent?这怎么调用呀,好难理解呀!
哦,主动触发呀!
要另外调用这个triggerEvent?怎么调用呀? _emitMyEvent这个方法我放在生命周期函数里面,自动调用了,我想点击调用的!