Angular 7 Mat自动完成,过滤器不起作用

时间:2019-11-19 14:57:30

标签: angular autocomplete angular7

我正在尝试实现自动完成机制,但无法使其正常工作。
我已经实现了使用我正在使用的逻辑的Stackblitz(您可以找到它here),并且可以正常工作。
问题在于我的应用程序无法正常工作:如果将焦点设置为输入,则不会获得可以过滤用户输入的数据列表。
代码中唯一不同的是,我从服务器获取数据,所以我的ngOnInit()函数有些不同:

     ngOnInit() {
    this.networkService.getDataFromServer().subscribe(c => {
      DATA = c;
      this.cooperativeFiltrate = this.cercaCooperativa.valueChanges.pipe(
        startWith(''),
        map(value => this._filter(value))
      )
    });
  }

如何解决此问题?

更新
我已经检查了一些事情,_filter函数在没有用户输入的情况下首次返回具有所有值的数组。如果我写一些东西,它将正确过滤值。但是自动完成功能仍然没有显示任何值。

1 个答案:

答案 0 :(得分:0)

所以问题是我在同一组件中有两个mat-autocomplete,如果未设置所有自动完成功能(即链接到数据源),Angular也会遇到一些问题。我不知道会发生这种情况,我通过删除第二个偶然发现了它。这是我没有将其放入堆栈闪电中的方法,因为我不知道它甚至可能是个问题。
我不知道Github上是否存在已知问题,或者这是正常行为。
一旦为其他自动完成功能设置了filter和valuChanges函数,它们都可以正常工作。