Ну, я также выполнил аналогичное требование и после реализации этой функции. Мы поняли, что это неверно, учитывая ситуацию ниже.
Подумайте о мобильных пользователях и в раскрывающемся списке выберите функцию поиска или фильтрации с полем ввода.
Поэтому, когда пользователь фокусируется на В поле ввода откроется раскрывающееся меню и одновременно откроется клавиатура мобильного телефона, на которой уменьшены события просмотра и пожарной прокрутки. А на свитке вы хотите закрыть выпадающий список. Учитывая вышеизложенную ситуацию, мы должны избегать всего в oop (открытие-закрытие). И если у вас есть только пользователи настольных компьютеров, то это нормально.
Так что, если у вас есть только пользователи настольных компьютеров, вы реализуете это
app.component.ts
import { Component , Inject} from "@angular/core";
import { FormBuilder } from "@angular/forms";
import { HostListener} from "@angular/core";
@Component({
selector: "my-app",
templateUrl: "./app.component.html",
styleUrls: ["./app.component.css"]
})
export class AppComponent {
cities1 = [];
constructor() {
this.cities1 = [
{label:'Select City', value:null},
{label:'New York', value:{id:1, name: 'New York', code: 'NY'}},
{label:'Rome', value:{id:2, name: 'Rome', code: 'RM'}},
{label:'London', value:{id:3, name: 'London', code: 'LDN'}},
{label:'Istanbul', value:{id:4, name: 'Istanbul', code: 'IST'}},
{label:'Paris', value:{id:5, name: 'Paris', code: 'PRS'}}
];
}
@HostListener("window:scroll", [])
onWindowScroll() {
const ele = document.getElementById('mydiv');
ele.click();
}
}
здесь стек ссылка