上一篇介紹了Aura Framework中 Component類的部分方法,本篇將要介紹Event經常使用的方法。函數
1. setParam (String key , Object value):設置事件的param,此項設置不會修改已經被觸發的事件。咱們在建立事件的時候能夠同時聲明attribute,在咱們fire事件之前,能夠對這些attribute設置值,其中key爲attribute的name,value部分即爲attribute的value。this
2.setParams (Object config):設置一組事件的param鍵值對。參數格式相似於{param1:value1 , param2:value2}。spa
3.fire (Object params): 觸發事件,params是可選項,若是params設置了鍵值對,則這裏的鍵值對則會覆蓋原有的鍵值對。code
4.getParam (String name): 獲取params中指定name對應的value值。event fire之後,在對應的handler中能夠經過getParam獲取相關param的value值。component
5.getParams (): 獲取params的全部鍵值對的集合。blog
6.getEventType (): 獲取事件類型, COMPONENT/APPLICATION。事件
7.getName (): 獲取註冊的事件的名稱。<aura:registerEvent name="TestEvent" type="c:TestComponentEvent"/> ,則此方法返回 TestEventip
8.getSource ():獲取事件對應的事件源。事件操做主要分紅三部分,事件源,事件,事件handler。經過事件能夠獲取到對應的數據源。文檔
9.getPhase (): 獲取事件階段。 capture/bubble/default.get
10.getType (): 獲取註冊事件的類型。<aura:registerEvent name="TestEvent" type="c:TestComponentEvent"/> ,則此方法返回 c:TestComponentEvent
11.pause ():暫停事件觸發,當調用resume方法後纔會繼續進行事件觸發的執行。
12.resume():繼續進行事件觸發的執行。
13.stopPropagation ():設置事件是否能夠冒泡。調用此方法後將會中止後續的事件階段的執行。
其餘方法或者上面方法的詳細描述能夠自行查看Event類的方法介紹。下面進行簡單的demo。
1.TestComponentEvent.evt: 建立一個Component類型的事件,包含兩個String類型的參數;
<aura:event type="COMPONENT" description="test component event"> <aura:attribute name="testAttribute1" type="String"/> <aura:attribute name="testAttribute2" type="String"/> </aura:event>
2.TestComponent.cmp: 建立一個Component,註冊此事件並設置此事件對應的handler,在init函數中觸發此事件;
<aura:component> <aura:registerEvent name="TestComponentEvent" type="c:TestComponentEvent"/> <aura:handler name="TestComponentEvent" action="{!c.testComponentHandler}"/> <aura:attribute name="testA1" type="String"/> <aura:attribute name="testA2" type="String"/> <aura:handler name="init" value="{!this}" action="{!c.initHandler}"/> {!v.testA1 + v.testA2} </aura:component>
3.TestComponentController.js : init函數中觸發事件,觸發事件設置相關的attribute值以及打印出相關的屬性
({ initHandler : function(component, event, helper) { var testEvent = component.getEvent('TestComponentEvent'); testEvent.setParam('testAttribute1','test value 1'); testEvent.setParam('testAttribute2','test value 2'); testEvent.fire({'testAttribute1' : 'test value 1 updated'}); }, testComponentHandler : function(component,event,helper) { component.set('v.testA1', event.getParam('testAttribute1')); component.set('v.testA2',event.getParam('testAttribute2')); console.log('type : ' + event.getType()); console.log('event phase : ' + event.getPhase()); console.log('event name : ' + event.getName()); console.log('event params : ' + event.getParams()); console.log('event param 1 : ' + event.getParam('testAttribute1')); console.log('event type : ' + event.getEventType()); } })
結果展現:
總結:此篇主要介紹了一些Event類經常使用的方法,詳情能夠自行參看官方提供的文檔。篇中有問題的歡迎指出,有不懂得歡迎留言。