我在项目中使用ng-select进行搜索。我希望仅在用户键入两个以上字符时显示列表。我已经尝试了ng-select的搜索,更改和打开事件,但是没有得到用户键入的实际术语。任何帮助表示赞赏。
答案 0 :(得分:1)
此问题的解决方案是通过其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;
}