Firestore中的自动完成功能无法按预期工作-Angular

时间:2018-10-14 16:51:22

标签: angular firebase google-cloud-firestore

我的自动完成功能有效,但未达到预期效果。我有2个电影标题:

"aaa"
"aaaaa"

当我开始输入结果过滤器时。问题是当我键入时,我必须输入 5作为,以便第一个标题消失而不是4,因为这不是匹配项,而第二个是 7 标题消失了,而不是6,因为这不是匹配项。

HTML

<input type="text" [(ngModel)]="searchValue" (keydown)="search($event)" />

TS

search($event) {
    let param = $event.target.value;
    this.startAt.next(param);
    this.endAt.next(param + "\uf8ff");
    this.movieSearched = this.afs
      .collection("movies", ref =>
        ref
          .orderBy("title")
          .startAt(param)
          .endAt(param + "\uf8ff")
      )
      .valueChanges();
  }

我什至尝试不使用$event.target.value,而是使用2个数据出价变量searchValue,但遇到相同的问题

2 个答案:

答案 0 :(得分:1)

要确保通过任何方式(键入,剪切,粘贴)修改输入内容时,自动完成功能均有效,请处理ngModelChange事件:

<input type="text" [(ngModel)]="searchValue" (ngModelChange)="search($event)" />

其中$event是输入元素的内容:

search(param: string) {
  ...
}

答案 1 :(得分:0)

对不起,我通过使用@Override public void onPostUpdate(PostUpdateEvent event) { ... } 找到了解决方案。如果有人有更好的解决方案,请务必发布并获得您的观点:)

keyup