据我所知,我们可以使用来自 jqlite 的 .bind
和 .on
api 或 .addEventListener
原生 api 来注册事件。许多人使用 jqlite api 来注册事件,因为 angular 1.x 提供了。但是 Angular 2 呢? Angular 2 是否仍然提供 jqlite api,或者我们应该坚持使用 native api,因为那样更安全。
此外,关于 .on
和 .addEventListener
之间的性能。哪个更好?
最佳答案
您不应该在 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
}
}
关于javascript - 在 Angular 中注册事件的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33248908/