You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Angular项目中addEventListener报错,请求语法排查与解决

Angular中addEventListener报错的解决方案

先解决语法层面的问题

你的代码存在两个明显的语法问题:

  1. 末尾多了一个多余的闭合大括号},这会直接触发语法报错,必须删除。
  2. 事件参数evt使用any类型不符合TypeScript规范,建议指定为WheelEvent。
  3. 即便用了!断言元素存在,实际开发中最好做非空检查,避免DOM元素未找到时抛出错误。

修正后的基础版本代码:

const scrollContainer = document.querySelector(".home_highlights_list");
if (scrollContainer) {
  scrollContainer.addEventListener("wheel", (evt: WheelEvent) => {
    evt.preventDefault();
    scrollContainer.scrollLeft += evt.deltaY;
  });
}

Angular项目的最佳实践

在Angular中不推荐直接用document.querySelector操作DOM,更符合框架规范的方式是使用@ViewChild获取元素:

import { Component, ViewChild, ElementRef, AfterViewInit } from '@angular/core';

@Component({
  selector: 'app-your-component',
  template: `
    <div #scrollContainer class="home_highlights_list">
      <!-- 你的列表内容 -->
    </div>
  `
})
export class YourComponent implements AfterViewInit {
  @ViewChild('scrollContainer') scrollContainer!: ElementRef<HTMLElement>;

  ngAfterViewInit(): void {
    const container = this.scrollContainer.nativeElement;
    container.addEventListener("wheel", (evt: WheelEvent) => {
      evt.preventDefault();
      container.scrollLeft += evt.deltaY;
    });
  }
}

内容的提问来源于stack exchange,提问作者Ashu Gupta

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 14:36:19