Я хочу показать опции второго выбора на основе выбора пользователя в предыдущем выборе.
У меня есть три объекта: Резервирование, Здание и Классная комната. Между ними есть отношения на изображении
Поэтому моя цель - когда я выбираю в Reservation
сущность некоторую Building
, я хочу показать в Classroom
выбрать только классы, связанные с выбраннымиBuilding.
Когда я получу, например, Classroom id: 1
, есть GET для этого класса:
{
"id": 1,
"number": "105",
"building": {
"id": 2,
"number": "45",
"reservations": null
},
"reservations": null
}
Так что, как вы можете видеть, это связано с Building с id: 2 и номером:45.
Мой HTML в JHipster / Angular для отображения этих двух селектов в Reservation
:
<div class="form-group">
<label class="form-control-label" jhiTranslate="srsApp.reservation.building"
for="field_building">Building</label>
<select class="form-control" id="field_building" name="building" formControlName="building"
[(ngModel)]="building">
<option [ngValue]="null"></option>
<option
[ngValue]="buildingOption.id === editForm.get('building').value?.id ? editForm.get('building').value : buildingOption"
*ngFor="let buildingOption of buildings; trackBy: trackBuildingById">{{ buildingOption.number }}</option>
</select>
</div>
<div class="form-group">
<label class="form-control-label" jhiTranslate="srsApp.reservation.classRoom" for="field_classRoom">Class
Room</label>
<select class="form-control" id="field_classRoom" name="classRoom" formControlName="classRoom"
[(ngModel)]="classroom">
<option [ngValue]="null"></option>
<option
[ngValue]="classRoomOption.id === editForm.get('classRoom').value?.id ? editForm.get('classRoom').value : classRoomOption"
*ngFor="let classRoomOption of classrooms; trackBy: trackClassRoomById">{{ classRoomOption.number }}
</option>
</select>
</div>
Я думаю, что мне нужно как-то изменить *ngFor
, но idkкак. Прямо сейчас Здание Выбор показывает все здания и Классная комната Выбор показывает все классные комнаты.
Большое спасибо!