无法使用 [displayWith] 检查 mat-autocomplete 值类型

Cannot check mat-autocomplete value typeusing [displayWith]

我使用 mat-autocomplete 并且有一个名为 [displayWith] 的功能,据我所知,它用于格式化值和一些有用性。在这个场景中,我有以下问题:

1. [displayWith]到底是用来做什么的?它是否可以用于检查自动完成中的文本类型,即使用户输入的是自由文本而不是选择选项?如果选择了选项none,或者清除输入?

2. 我想调用如下所示的方法来检查是否选择了该值,但它不起作用。那么,我可以根据文本的类型来调用方法吗?

我使用类似的方法:

<md-autocomplete #auto="mdAutocomplete" [displayWith]="displayFn.bind(this)">
  <md-option *ngFor="let state of filteredStates | async" [value]="state.id">
    {{ state.name }}
  </md-option>
</md-autocomplete>


displayFn = (data?: any) => {
    return data ? this.sometask(data) : '';
}

sometask(data) {
    console.log(typeof(data));
}
  1. 如果你想显示存储在控件值中的不同内容,你需要使用 displayFn e.q 如果你提供
displayFn(data)=>`${data.name}` 

在列表中 select 项之后,您将在自动完成中看到“名称”,其中“名称”来自数据对象 {name:"Name"}。也就是说,你可以在不改变控件模型的情况下显示任何内容。

  1. 您需要提供整个对象作为控制值(它与 1.point 相关,因为现在 displayFn 有意义。):)

<md-option *ngFor="let state of filteredStates | async" [value]="state">