1

据我所知,我们可以使用jqlite 中的 api 或.bind原生 api 来注册事件。许多人使用 jqlite api 来注册事件,因为 angular 1.x 提供了它。但是 Angular 2 呢?Angular 2 是否仍然提供 jqlite api,或者我们应该坚持使用原生 api,因为这样更安全。.on.addEventListener

此外,关于 和 之间的.on性能.addEventListener。哪一个更好?

4

2 回答 2

2

您不应该在 angular2 应用程序中直接触摸 DOM。无法在WebWorkers 或服务器端运行您的应用程序。请改用(event)="someHanlder()"符号。看到这个笨蛋

@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
    }
}
于 2015-10-21T06:19:37.160 回答
1

Angular 2 是否仍然提供 jqlite api,或者我们应该坚持使用原生 api,因为这样更安全。

Angular 2 不提供 jqlite。

此外,关于 .on 和 .addEventListener 之间的性能。哪一个更好

使用.addEventListener它是 DOM 官方的方式。

于 2015-10-21T00:17:55.683 回答