无法使用 [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));
}
- 如果你想显示存储在控件值中的不同内容,你需要使用 displayFn e.q 如果你提供
displayFn(data)=>`${data.name}`
在列表中 select 项之后,您将在自动完成中看到“名称”,其中“名称”来自数据对象 {name:"Name"}。也就是说,你可以在不改变控件模型的情况下显示任何内容。
- 您需要提供整个对象作为控制值(它与 1.point 相关,因为现在 displayFn 有意义。):)
<md-option *ngFor="let state of filteredStates | async" [value]="state">
我使用 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));
}
- 如果你想显示存储在控件值中的不同内容,你需要使用 displayFn e.q 如果你提供
displayFn(data)=>`${data.name}`
在列表中 select 项之后,您将在自动完成中看到“名称”,其中“名称”来自数据对象 {name:"Name"}。也就是说,你可以在不改变控件模型的情况下显示任何内容。
- 您需要提供整个对象作为控制值(它与 1.point 相关,因为现在 displayFn 有意义。):)
<md-option *ngFor="let state of filteredStates | async" [value]="state">