Angular 为ng select键入至少2个字符时显示列表项

Angular 为ng select键入至少2个字符时显示列表项,angular,Angular,我正在项目中使用ng select进行搜索。我希望仅当用户键入超过2个字符时才显示列表。我尝试过搜索、更改和打开ng select的事件,但没有得到用户键入的实际术语。感谢您的帮助 此问题的解决方案是通过其labelForId属性为ng select组件提供Id,并将其作为ts文件中的HTML元素获取。如果您得到这个HTML元素的值,这将是用户键入的术语。如果术语少于2个字母,则必须使用ngSelect的close()事件关闭下拉列表 component.html文件: <ng-selec

我正在项目中使用ng select进行搜索。我希望仅当用户键入超过2个字符时才显示列表。我尝试过搜索、更改和打开ng select的事件,但没有得到用户键入的实际术语。感谢您的帮助

此问题的解决方案是通过其labelForId属性为ng select组件提供Id,并将其作为ts文件中的HTML元素获取。如果您得到这个HTML元素的值,这将是用户键入的术语。如果术语少于2个字母,则必须使用ngSelect的close()事件关闭下拉列表

component.html文件:

<ng-select #Selecter [multiple] = "true" typeToSearchText = "'Please type'" labelForId="ngSelectId" (keyup) = "openDropdown()" (open) = "openLocationsDropdown()"
[items] = "selectOptions"></ng-select>

component.ts文件:

@ViewChild('Selecter') ngselect: NgSelectComponent;

openLocationsDropdown() {
         let element = (document.getElementById('ngSelectId') as HTMLInputElement);
             let component = this.ngSelect;
         let term = element.value;
         if (this.term.length < 2){
              component.close();
         }
         element.value = this.term;
  }
@ViewChild('selector')ngselect:NgSelectComponent;
openLocationsDropdown(){
let element=(document.getElementById('ngSelectId')作为HTMLInputElement);
让component=this.ngSelect;
设项=element.value;
如果(此项长度小于2){
component.close();
}
element.value=此.term;
}

发布stackbliz演示/您可以使用的测试代码