Можно создать словарь значения ключа для компонента следующим образом
options: {(option: string): number} = {'Maths': 20000, 'Physics': 20000,'Biology': 20000};
Использование Object.keys для получения автозаполнения ввода и добавления привязки выбранной опции для сохранения выбранной опции.
@Component({
selector: 'autocomplete-filter-example',
templateUrl: 'autocomplete-filter-example.html',
styleUrls: ['autocomplete-filter-example.css'],
})
export class AutocompleteFilterExample implements OnInit {
myControl = new FormControl();
options: {(option:string):number} = { 'Maths': 20000, 'Physics': 20000, 'Biology': 20000};
filteredOptions: Observable<string[]>;
selectedOpt: string;
ngOnInit() {
this.filteredOptions = this.myControl.valueChanges
.pipe(
startWith(''),
map(value => this._filter(value))
);
}
private _filter(value: string): string[] {
const filterValue = value.toLowerCase();
return Object.keys(this.options).filter(option => option.toLowerCase().includes(filterValue));
}
}
Сумма, которую вы можетепривязать значение к
options [selectedOpt]
получить значение по умолчанию из словаря и установить на входе
<form class="example-form">
<mat-form-field class="example-full-width">
<input type="text" placeholder="Courses" aria-label="Number" matInput [formControl]="myControl" [matAutocomplete]="auto" [(ngModel)]="selectedOpt">
<mat-autocomplete #auto="matAutocomplete">
<mat-option *ngFor="let option of filteredOptions | async" [value]="option">
{{option}}
</mat-option>
</mat-autocomplete>
</mat-form-field>
</form>
<mat-form-field>
<input matInput placeholder="Amount" [value]="options[selectedOpt]">
</mat-form-field>