微信小程序自定義組件觸發(fā)父級(jí)頁(yè)面事件
一、自定義組件定義如下:
1. js文件
Component({? properties:?{},? methods:?{
? ? onTap:?function?()?{
? ? ? var?myEventDetail?=?{}?//?detail對(duì)象,提供給事件監(jiān)聽函數(shù)
? ? ? var?myEventOption?=?{}?//?觸發(fā)事件的選項(xiàng)
? ? ? this.triggerEvent('myevent',?myEventDetail,?myEventOption)
? ? }? } })
2. wxml文件
<view?class="wrapper">
? <view>這里是組件的內(nèi)部節(jié)點(diǎn)</view>
? <slot></slot>
? <button?bindtap="onTap">點(diǎn)擊這個(gè)按鈕將觸發(fā)“myevent”事件</button>
</view>
二、引用組件的父級(jí)頁(yè)面
1.?js文件
Page({? data:?{?},?myEventListener:?function(e)?{? console.log(e)? } })
2.?wxml文件
<view>
? <my-component?bind:myevent="myEventListener">?</my-component>
</view>
注:其中的?“myevent”?事件只是一個(gè)標(biāo)識(shí)符,并不是一個(gè)方法的名稱(自定義組件中沒有,父級(jí)頁(yè)面中也沒有),其被指定為?bind:myevent="myEventListener"事件。即自定義組件中通“myevent”這一個(gè)標(biāo)識(shí)符等于(=)或代表MyEventListener方法。自定義組件中通過使用“?this.triggerEvent('myevent',?myEventDetail,?myEventOption)” 來觸發(fā)父級(jí)頁(yè)面中的 “myEventListener” 方法。