javascript - 在 Angular 中注册事件的最佳方式

标签 javascript angularjs mouseevent angular jqlite

据我所知,我们可以使用来自 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/

相关文章:

javascript - 未触发Typeahead JS自定义事件

javascript - 如何使 Angular 中的 ui-view 响应?

JavaScript onmouseover 未按预期工作

javascript - 为什么我输入的数据长度只有1个符号却是0?

javascript - 如何禁用 AngularJS 多选?

javascript - AngularJS $routeProvider 没有正确路由

javascript - 如何让 Angular 在 jqLit​​e 上使用 jQuery

jquery - 取消鼠标悬停时的 mouseleave 事件

Java 2D 游戏 - MouseClicked 和 MouseMoved 方法

javascript - 无法读取未定义的属性 'toLowerCase' (Angularjs/JavaScript/Json)