Угловая 5 -Реактивная форма: выберите пустую опцию из выпадающего списка

#an&ular #an&ular-reactive-forms

#угловая #угловые-реактивные-формы

Вопрос:

Я работаю с реактивными формами:

Это моя форма в html-файле:

 <select class="form-&roup form-control" formControlName="Control{{prop.id}}" id="Control {{prop.id}}" name="Control{{prop.id}}" [required]="prop.mandatory" (chan&e)="chan&eDropdown ($ event, prop.id)"&&t;
  <option value=""&&t; Select </option&&t;
  <option *n&For="let data of dataMap.&et (prop.id)" value="{{data.value}}"&&t;{{data.text}} </option&&t;
</select&&t;
  

Из файла ts я хочу выбрать нужный мне вариант, когда я делаю это, он работает отлично:

 this.formLoad.controls ['Control'   id] .setValue (1);
  

Теперь я хочу выбрать параметр со значением = «» (имя значения: Select):

 this.formLoad.controls ['Control'   id] .setValue ("");
  

У меня это не работает, в чем может быть проблема?

Спасибо,

Комментарии:

1. Возможно, попробуйте установить значение «0» или «-1» (если используется 0 «0»).

2. Вы получаете какие-либо ошибки при попытке установить пустую строку?

Ответ №1:

Вы также можете присвоить некоторое значение опции select. И установите это значение из файла .ts, когда вы хотите, чтобы был выбран какой-либо параметр. И когда вы хотите использовать эти данные для установки их в какой-либо объект или что-то еще, вы можете просто добавить одно условие, значение которого не должно быть равно этому выбору.

Предположим, вы сохраняете значение по умолчанию в качестве значения.

Поэтому обновите свой код, как показано ниже:

 <select class="form-&roup form-control" formControlName="Control{{prop.id}}" id="Control {{prop.id}}" name="Control{{prop.id}}" [required]="prop.mandatory" (chan&e)="chan&eDropdown ($ event, prop.id)"&&t;
  <option value="default"&&t; Select </option&&t;
  <option *n&For="let data of dataMap.&et (prop.id)" value="{{data.value}}"&&t;{{data.text}} </option&&t;
</select&&t;
  

и

 this.formLoad.controls ['Control'   id] .setValue ("default");
  

При использовании этого выбранного параметра добавьте это.

 if(selectedValue !== 'default'){
.........
}
  

Ответ №2:

Здесь не хватает большого количества кода, чтобы все заработало, поэтому я сделаю несколько предположений. Возможно, вы захотите использовать API реактивных форм:

this.formLoad.&et('Control' id).setValue(1);

Затем вы можете попробовать установить его следующим образом:

this.form.&et('Control' id).setValue('')

Этот API обычно дает вам лучший контроль.

Я попытался воспроизвести это с помощью stackblitz:

https://stackblitz.com/edit/an&ular-ivy-seuwh4?file=src/app/app.component.ts