據我所知,我們可以使用jqlite的.bind
和.on
api或原生API的.addEventListener
來註冊事件。很多人使用jqlite api來註冊事件,因爲angular 1.x提供這個功能。但是Angular 2呢? Angular 2是否仍然提供jqlite api,或者我們應該堅持原生api,因爲它更安全。在Angular中註冊事件的最佳方式
此外,關於.on
和.addEventListener
之間的性能。哪一個更好?
據我所知,我們可以使用jqlite的.bind
和.on
api或原生API的.addEventListener
來註冊事件。很多人使用jqlite api來註冊事件,因爲angular 1.x提供這個功能。但是Angular 2呢? Angular 2是否仍然提供jqlite api,或者我們應該堅持原生api,因爲它更安全。在Angular中註冊事件的最佳方式
此外,關於.on
和.addEventListener
之間的性能。哪一個更好?
Angular 2是否仍然提供jqlite api,或者我們應該堅持原生api,因爲它更安全。
Angular 2不提供jqlite。
此外,關於.on和.addEventListener之間的性能。哪一個更好
使用.addEventListener
,因爲這是DOM的官方方式。
您不應該在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
}
}