据我所知,我们可以使用jqlite的.bind
和.on
api或.addEventListener
native api来注册事件。许多人正在使用jqlite api来注册事件,因为angular 1.x提供了这一点。但是Angular 2呢? Angular 2是否仍然提供jqlite api,或者我们应该坚持使用本机api,因为它更安全。
此外,关于.on
和.addEventListener
之间的效果。哪一个更好?
答案 0 :(得分:2)
您不应该直接在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
}
}
答案 1 :(得分:1)
Angular 2是否仍然提供jqlite api,或者我们应该坚持使用本机api,因为它更安全。
Angular 2不提供jqlite。
另外,关于.on和.addEventListener之间的性能。哪一个更好
使用.addEventListener
,因为这是DOM官方方式。