html
<select class = "form-control" id = "venue" name = "venue1"
formGroupName = "venue"
(change) = "venue_method($event.target.value)">
<option hidden >Click to choose a venue...</option>
<option [attr.value] = "venue.id" *ngFor = "let venue of venues">
{{venue.name}}
</option>
<input type = "hidden" formControlName = "title" name = "title">
</select>
Код компонента
this.rForm = fb.group({
'venue': fb.group({
'VenueId': [],
'title': [],
'isAvailable': [],
//some more values
}),
//some other controls and groups
});
venue_method(input: any) {
console.info(input)
this.rForm.get('venue').patchValue({ title: input.name });
this.rForm.get('venue').patchValue({ VenueId: input.id });
this.rForm.get('venue').patchValue({isAvailable: true });
//some more patches
console.info(this.rForm.get('venue').value);
}
Я хочу отправить значение всех свойств, которые есть у моей площадки, например, 'name' и 'id', но со значением attr я могу исправить только одно значение. Каков правильный обходной путь для этого?
Примечание. Я не хочу, чтобы при выборе расширенного отображения отображались все варианты, я хочу получить доступ ко всем свойствам «место проведения» из «разрешить место проведения мероприятий». У места проведения есть место проведения. Имя и место проведения. В настоящее время я могу получить доступ к месту проведения. как получить доступ к обоим одновременно?
Вам нужно немного обновить свой код, как описано ниже. обновите свой <option [attr.value] = "venue.id" *ngFor = "let venue of venues">
в
<option value = "venue | json" *ngFor = "let venue of venues">
<select class = "form-control" id = "venue" name = "venue1"
formGroupName = "venue"
(change) = "venue_method($event.target.value)">
<option hidden >Click to choose a venue...</option>
<option value = "venue | json" *ngFor = "let venue of venues">
{{venue.name}}
</option>
<input type = "hidden" formControlName = "title" name = "title">
</select>
В TS вам нужно parse
ваших данных, чтобы снова создать объект.
используйте multi внутри вашего выбора. Насколько я помню, он выдаст вам массив выбранных значений. stackoverflow.com/questions/43666147/…