Помогите пожалуйста получить из material autocomplete после нажатия на кнопку submit выбранное значение. Мой код выглядит приблизительно так: html:
<form class="example-form">
<mat-form-field class="example-full-width">
<input type="text"
placeholder="Сделайте выбор"
matInput
name="city"
[matAutocomplete]="auto"
(input)="getCities(city)"
[(ngModel)]="city">
<mat-autocomplete #auto="matAutocomplete">
<mat-option *ngFor="let optionObj of options" [value]="optionObj" (click)="onSelectCity(optionObj.name)">
{{ optionObj.name }}
</mat-option>
</mat-autocomplete>
</mat-form-field>
<button class="btn btn-common" mat-button (click)="submitForm(city)">
Отправить
</button>
</form>
js:
private options = [
{name: 'qwerty', id: 34234234},
{name: 'qwerty2', id: 121212},
{name: 'qwerty3', id: 676767},
{name: 'qwerty4', id: 453657}
];
onSelectCity(option) {
console.log(option);
this.city = option;
};
submitForm(city) {
console.log('submit', city);
};
Этот код частично работает. То есть после нажатия на кнопку submit я получаю в submitForm название города. Но мне кроме названия нужен так же id города(а в реальной задаче там кроме id много ещё свойств)
У вас функция он onSelectcity принимает одно значение(название города) и записывает в city . Данный фрагмент кода передаст, только название города при клике
<mat-option *ngFor="let optionObj of options" [value]="optionObj" (click)="onSelectCity(optionObj.name)">
переписать функцию нужно так
onSelectCity(someCityName) {
this.city = options.filter(
(city) => {return city.name === someCityName}
)[0];
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Как и написано в вопросе, требуется реализация такой конвертации Конвертация чисел в 1K, 1M, 1B, 1T, 1aa, 1ab?
У меня есть некоторый компонент который задан <Route path="/news" component={C}/> и <Route exact path="/news/page/:number/" component={C}/> , если компонент принимает параметр...
Всем привет! Только-что возникла одна гениальная идеяНо для этого мне нужно знать: