Как получить выбранное значение?

286
09 ноября 2017, 07:48

Помогите пожалуйста получить из 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 много ещё свойств)

Answer 1

У вас функция он 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];
}
READ ALSO
Конвертация чисел в 1K, 1M, 1B, 1T, 1aa, 1ab?

Конвертация чисел в 1K, 1M, 1B, 1T, 1aa, 1ab?

Как и написано в вопросе, требуется реализация такой конвертации Конвертация чисел в 1K, 1M, 1B, 1T, 1aa, 1ab?

1271
Не обновляется компонент в react-router v4

Не обновляется компонент в react-router v4

У меня есть некоторый компонент который задан <Route path="/news" component={C}/> и <Route exact path="/news/page/:number/" component={C}/> , если компонент принимает параметр...

532
Результат сравнения строки и true [дубликат]

Результат сравнения строки и true [дубликат]

На данный вопрос уже ответили:

319
Небольшое изменение в Function

Небольшое изменение в Function

Всем привет! Только-что возникла одна гениальная идеяНо для этого мне нужно знать:

222