Angular 5 使用 ng-select 作为自动完成字段

标签 angular angular-material2

在我的应用程序中选择...。是否可以将其用作自动完成字段,不需要选择值。我想使用 ng-select,因为它使用虚拟滚动,而 Angular Material 的 mat-autocomplete 则没有。如果有很多值,mat-autocomplete 会变慢。

我的问题:是否可以将 ng-select 用作​​自动完成功能。换句话说:ng-select 没有所需的选择选项。如果我点击远离 ng-select 字段,如果没有选择,该值将为空。值(value)必须保留..

<label>Your first ng-select</label>
      <ng-select class="custom" [items]="cities"
                bindLabel="name"
                placeholder="Select city"
                [typeahead]="typeahead"
                [(ngModel)]="selectedCity">
      </ng-select>

最佳答案

我相信你正在使用

https://www.npmjs.com/package/@ng-select/ng-select#api

不建议以这种方式使用它,但是有变通办法。

添加以下监听器

(open)= OnOpen(), (search) = OnSearch(), (blur) = OnBlue()

<ng-select [items]="cities" #select1
                   bindLabel="name"
                   (open)= OnOpen()
                   (search) = OnSearch()
                   (blur) = OnBlue()
                   dropdownPosition="hidden"
                   [(ngModel)]="selectedCity">
        </ng-select>

添加定义这两个变量

isbeingSearched: boolean = false;
@ViewChild('select1') select1Comp: NgSelectComponent;

//处理事件的代码

OnOpen(){
  console.log("OnOpen");
  if(!this.isbeingSearched)
  {
    this.select1Comp.close()      
  }

}

OnSearch(){
  this.isbeingSearched = true;
  console.log("OnSearch");
  this.select1Comp.open()
}

OnBlue(){
  console.log("OnBlue");
  this.isbeingSearched = false;
  this.select1Comp.close()
}

工作示例

https://stackblitz.com/edit/ng-select-lw4dfh

关于Angular 5 使用 ng-select 作为自动完成字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50153762/

相关文章:

asp.net-mvc - 将 JQuery AJAX 调用转换为 Angular 2 服务

angular - 在 Angular 中找不到模块文件保护程序

Angular Material mat-list-item-content 位置

typescript - @Input() 返回 [object Object] Typescript Angular2

javascript - Angular 2 Http不触发

angular-material2 - 如何使用 Angular 4 对话框指令?

angular - 如何使用日期选择器在 Angular Material 5.0.0 中选择日期范围?

Angular Material 2 : How to refresh md-table after add data to datasource?

html - 如何使选择元素根据元素字符串长度进行调整? ( Angular 2)

java - 如何在primeng p-fileupload组件中过滤文件类型