2015-10-21 76 views
1

據我所知,我們可以使用jqlite的.bind.on api或原生API的.addEventListener來註冊事件。很多人使用jqlite api來註冊事件,因爲angular 1.x提供這個功能。但是Angular 2呢? Angular 2是否仍然提供jqlite api,或者我們應該堅持原生api,因爲它更安全。在Angular中註冊事件的最佳方式

此外,關於.on.addEventListener之間的性能。哪一個更好?

回答

1

Angular 2是否仍然提供jqlite api,或者我們應該堅持原生api,因爲它更安全。

Angular 2不提供jqlite。

此外,關於.on和.addEventListener之間的性能。哪一個更好

使用.addEventListener,因爲這是DOM的官方方式。

1

您不應該在angular2應用程序中直接觸摸DOM。無法在WebWorker或服務器端運行您的應用程序。請使用(event)="someHanlder()"表示法。見this plunker

@Component({ 
    selector: 'some-component', 
    // in "template" you can add handlers for child elements events 
    template: ` 
     <button (click)="handleClickChild($event)">here</b> 
    `, 
    // in "host" you can add handlers for host element events 
    host: { 
     '(click)': 'handleClickHost($event)' 
    } 
}) 
class SomeComponent { 
    handleClickHost(event) { 
     // some logic 
    } 
    handleClickChild(event) { 
     // some login 
    } 
} 
相關問題