У меня есть простая форма, где у меня есть поле ввода с автозаполнением (компоненты углового материала). Дело в том, что когда я выбираю значение из поля автозаполнения, поля ввода приводят к значению [Object object]
, в то время как я хотел бы, чтобы это был какой-то текст, связанный с оценщиком. Возможно ли это из коробки или мне нужно напрямую манипулировать элементом DOM для достижения этого?
значение этого поля намеренно является Host
объектом.
Форма:
<form [formGroup]="form" class="full-width">
<mat-form-field>
<mat-label>Host</mat-label>
<input type="text" matInput formControlName="host" [matAutocomplete]="hostSuggestionsAutocomplete"
placeholder="Host"/>
</mat-form-field>
<mat-form-field>
<input matInput formControlName="delay" placeholder="Delay" type="number" min="1" max="3600"/>
<mat-error>Delay must be between 1 and 3600 seconds</mat-error>
</mat-form-field>
</form>
<mat-autocomplete #hostSuggestionsAutocomplete=matAutocomplete>
<mat-option *ngFor="let hostSuggestion of hostSuggestions"
[value]="hostSuggestion">{{hostSuggestion.toViewLabel()}} #{{hostSuggestion.id}}</mat-option>
</mat-autocomplete>
Хост:
export class Host {
id: number;
address: String;
label: String;
status: HostStatus;
lastStatusUpdate: Date;
}
Result af
тер выбора из автозаполнения:
![enter image description here](https://i.stack.imgur.com/G0mSl.png)
Вместо [Object object]
Я хотел быскажем, value.id + value.address
или что-то подобное - в общем, пользовательская метка для этого.
В AngularDart была опция для указания переопределяемого элемента - функция, которая принимает значение и создает для него «метку», которая отображается в поле ввода.