Проблема выбора опции по умолчанию для тега Angular 7 - PullRequest
0 голосов
/ 25 ноября 2018

Прежде всего, всем привет.Вот проблема: у меня есть 2 выберите тег.Первый тег выбора имеет 2 тега параметров: первый тег параметра имеет значение, используемое в качестве значения по умолчанию (вид заполнителя +> «выбрать» или «выбрать» и т. Д.), А второй тег тега представляет собой цикл ngFor с некоторыми названиями улиц.

У второго тега выбора есть только один тег параметра с циклом ngFor, отображающим названия некоторых городов.

Всякий раз, когда я нажимаю на название города, тег выбора улицы отображает названия улиц внутри выпадающего списка.

В самом начале, когда окно загружено, опция значения по умолчанию («выбрать») хорошо отображается по умолчанию, но как только я выбираю город, значение по умолчанию «выбрать» тега выбора улицы,отображается в раскрывающемся списке, но по умолчанию отображается первый индекс соответствующего списка улиц.

Это действительно разочаровывает, я не могу найти причину.

 <select class="dropdown-select" formControlName="street-dd">
  <option class="dropdown-select" disabled selected [ngValue]="null">Select</option>
    <option class="dropdown-select"  *ngFor="let street of retrievedStreets">{{street}}</option>
</select>

<select class="dropdown-select"(change)="onCitySelected($event)" formControlName="city">
  <option class="dropdown-select" *ngFor="let city of retrievedCities" [value]="city['city']">{{city["city"]}}</option>
</select>

Здесь файл TS:

export class AddressComponent  {
  public retrievedCities: Array<any> = [];
  public retrievedStreets: Array<any> = [];

 private retrieveCities(cities: any) {
    this.retrievedCities = [];
    if (cities && cities.length > 0) {
      this.retrievedCities = cities;
    } 
  }

  public onCitySelected(city) {
    this.retrievedStreets = null;
      this.retrievedStreets = this.lookupStreets(city);
      console.log('retrieved street', this.retrievedStreets);
    this.retrievedStreets = this.retrievedStreets.sort();
  }

  private lookupStreets(city): Array<any> {
    return find(this.retrievedCities, {'city': city.target.value})['streets'];
  }
}

В начале нет проблемызначение по умолчанию отображается как заполнитель:

enter image description here

Но затем, когда я выбираю значение улицы, выбираю внутри выпадающего элемента, а затем нажимаю другое значениеПри выборе города первый индекс в списке улиц отображается в качестве заполнителя, а в выпадающем списке «выбор» отключается:

enter image description here

и при нажатиив раскрывающемся списке улиц я получаю:

  • Выберите //, который отключен
  • CH DU LAC-A-L'ORIGINAL // первый индекс появляется по умолчанию
  • RUE MAUDE
  • и т. Д. *

Как я могу заставить выбор улицы ставить "выбрать" в качестве заполнителя значения по умолчанию каждый раз, когда я переключаю опцию города ???

Спасибо всем

1 Ответ

0 голосов
/ 27 ноября 2018

На самом деле есть решение :) Просто нужно сбросить formcontrol в случае реактивных форм:

this.yourFormGroup.get ('nameOfYourFormControl'). Reset ()

Тогдазначение по умолчанию будет восстановлено снова.

Надеюсь, это когда-нибудь кому-нибудь поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...