Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular2物料自动完成问题_Angular_Autocomplete_Angular Material - Fatal编程技术网

Angular2物料自动完成问题

Angular2物料自动完成问题,angular,autocomplete,angular-material,Angular,Autocomplete,Angular Material,我在表单中有两个材料自动完成输入 1) 第一个可以处理动态数据,除了键盘上的箭头按钮不起作用外,其他功能都很好。选择带有箭头的选项并输入是不可能的 <mat-form-field> <input type="text" class="form-control" id="autoData" formControlName="autoData" matInput [matAutocomplete]="auto" (keyup)="getData($event.target.

我在表单中有两个材料自动完成输入

1) 第一个可以处理动态数据,除了键盘上的箭头按钮不起作用外,其他功能都很好。选择带有箭头的选项并输入是不可能的

<mat-form-field>
    <input type="text" class="form-control" id="autoData" formControlName="autoData" matInput [matAutocomplete]="auto" (keyup)="getData($event.target.value)">
            <mat-autocomplete #auto="matAutocomplete" [displayWith]="displayFn">
                    <mat-option  (onSelectionChange)="getMoreData(option.text)" *ngFor="let option of testData; let in=index" [value]="option">
                        {{ option.text }}
                    </mat-option>
            </mat-autocomplete>
</mat-form-field>

{{option.text}
2) 第二个用于静态数据数组。问题-它显示所有可能的选项,在输入中键入字母时不过滤选项。键盘也有问题

代码是一样的

{{option.name+“”+option.cat}

我已经完成了对动态数据使用angular并对数据进行了过滤

html文件

     <mat-form-field>
          <input matInput [(ngModel)] = "builderCompanyName" placeholder="Builder Company Name" [formControl]="CommercialControl" [matAutocomplete]="auto">
          <mat-autocomplete #auto="matAutocomplete">
            <mat-option *ngFor="let name of builderCompanyNameArray | listFilter:builderCompanyName" [value]="name" (click)="select(CommercialControl.value)">
              {{ name }}
            </mat-option>
          </mat-autocomplete>
        </mat-form-field>
下面是过滤结果

希望这对你有帮助。谢谢


谢谢,但是如果我有一排物品呢?选项=[{“id”:1,“name”:“color”,“cat”:“red”},{“id”:2,“name”:“color”,“cat”:“blue”},{“id”:3,“name”:“color”,“cat”:“green”}];-在这种情况下如何过滤?对于对象数组,请查看我的回答。这可能会对您有所帮助,链接在这里谢谢
import { Pipe, PipeTransform } from '@angular/core';

 @Pipe({
   name: "listFilter" 
 })

 export class ListFilterPipe implements PipeTransform {
 transform(items: any[], searchText: string): any[] {
  if (!items) return [];
  if (!searchText) return items;
  searchText = searchText.toLowerCase();
  return items.filter(it => {
    // console.log(it);
    return it.toLowerCase().includes(searchText);
   });
  }
 }