角材料自动完成功能无法正常工作

胺厄齐尔

我正在使用Angular Materials自动完成功能来自动完成数据库中超过250万个现有单词的用户搜索关键字,我还限制了搜索功能,仅在第4个字符之前显示自动完成的结果,尽管我的页面在第一个字符后被阻止用户输入的字符对我来说似乎不合逻辑(如果这是大数据问题,应该在用户键入第四个字符后出现),这是我的Typescript代码:

  control = new FormControl();
  filteredWords: Observable<string[]>;
  url = "./assets/existingwords.txt";
  public  words : string[] =[];

  private _filter(value: string): string[] {
    const filterValue = value.toLowerCase().replace(/\s/g, '');
    return this.words.filter(word => word.toLowerCase().replace(/\s/g, '').includes(filterValue));
  }
  ngOnInit() : void  {
    this.filteredWords = this.control.valueChanges.pipe(
        startWith(''),
        map(value => value.length>=4 ? this._filter(value): this.words.slice())
    );
  }

这是我的HTML代码:

                    <div class="form-group">
                    <input matInput type="text" class="form-control" id="idWord" [formControl]="control" [(ngModel)]="myword" placeholder="Saisir votre terme ici.." name="myword" [matAutocomplete]="auto">
                    <mat-autocomplete #auto="matAutocomplete">
                        <mat-option *ngFor="let word of filteredWords | async" [value]="word">
                          {{word}}
                        </mat-option>
                    </mat-autocomplete>
                    </div>
胺厄齐尔

那么问题出在我的lambda表达式中的else条件,正是这部分代码:

this.words.slice()

总是返回我所有的数据条目,当用户键入少于4个字符时,这会导致材料自动完成块,否则解决方案是将其更改为:

this.words.slice(0,0)

这意味着,如果用户键入的字符少于4个,我们将不会为他显示任何建议(您可以修改slice()函数的参数以显示所需的建议数量)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

jQuery-UI的自动完成功能无法正常显示,z-index问题

Emacs Ruby自动完成功能几乎可以正常工作

javascript ajax成功功能无法正常工作?

活动中的Android完成功能无法正常工作

Visual Studio语法突出显示/自动完成功能无法正常工作

角材料自动完成功能不起作用,未显示任何错误

角材料:如何根据建议的选项验证自动完成功能?

表角材料分页无法正常工作

具有角材料自动完成功能的Angularfire2.5实时数据库

使用角材料自动完成

角材料DatePicker自动完成

角材料-Sidenav组件无法正常工作

side-nav无法正常工作| 角材料| 角度7

角材料自动完成功能可防止setValue的反应性起作用

在Mac上的Android Studio中,复制&粘贴&粘贴/自动完成功能无法正常工作

角材料表粘页眉无法正常工作

终端自动完成功能无法正常运行

使用本地对象数组时,为什么这种非常基本的JQuery自动完成功能无法正常工作?

jQuery-ui自动完成功能无法在IE8中正常工作

jQuery的自动完成功能无法正常工作

Visual Studio自动完成无法正常工作

Sublime Text 3自动完成功能无法正常工作

角材料。自动完成指令

角材料介绍无法正常工作或无法正确渲染

谷歌API自动完成功能无法正常工作

如何在旧版jQuery UI中使jQuery UI自动完成功能正常工作?

自动完成无法正常工作

角材料自动完成

多选自动完成搜索功能 - 角材料芯片