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

Angular 13中ngSelect选项hover事件调用实现方案咨询

实现ngSelect选项悬停触发自定义事件

完全可行,直接给<ng-option>绑定鼠标悬停事件即可,具体实现步骤如下:

1. 修改模板中的<ng-option>标签

在循环生成的<ng-option>上添加(mouseenter)事件(若需鼠标在选项内移动时持续触发,可改用(mouseover)),并传递当前选项的data对象:

<div class="col-sm-6 col-md-3 col-lg-3 col-xl-2 col-12 custom-select">
  <div class="form-group form-focus select-focus">
    <ng-select [(ngModel)]="employeeCode" (change)="onLeaveFilterChange()" [allowClear]="false"
      [placeholder]="'-- Select --'" dropdownPosition="bottom" class="form-control">
      <ng-option [value]="'null'">-- Select --</ng-option>
      <!-- 绑定鼠标悬停事件并传递当前员工数据 -->
      <ng-option *ngFor="let data of totalLeavedEmployeeList" [value]="data.empCode" (mouseenter)="onOptionHover(data)">
        {{ data?.empCode }} - {{ data?.empName }}
      </ng-option>
    </ng-select>
    <label class="focus-label">Employee</label>
  </div>
</div>

2. 在TS文件中定义事件处理函数

在组件的.ts文件里实现onOptionHover方法,编写悬停触发的业务逻辑:

export class YourComponent {
  employeeCode: any;
  totalLeavedEmployeeList: any[] = []; // 你的员工列表数据

  // 原有change事件逻辑
  onLeaveFilterChange() {
    // ...你的业务代码
  }

  // 新增的悬停事件处理函数
  onOptionHover(employeeData: any) {
    // 这里编写悬停时要执行的逻辑,比如打印信息、加载员工详情等
    console.log('鼠标悬停员工:', employeeData);
    // 示例:调用自定义业务方法
    // this.fetchEmployeeDetail(employeeData.empCode);
  }
}

补充说明

  • mouseenter仅在鼠标首次进入选项元素时触发一次,适合单次触发的场景;mouseover会在鼠标进入选项及子元素时持续触发,按需选择即可。
  • <ng-option>最终会渲染为普通DOM元素,因此所有标准DOM鼠标事件都可以直接绑定使用,无需额外配置。

内容的提问来源于stack exchange,提问作者jayesh parmar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 09:25:10