Привет, ребята, я пытаюсь обновить элемент, поэтому я хочу заполнить форму существующими значениями.Я успешно выполнил задачу, за исключением одного выпадающего списка.Я делаю несколько запросов, потому что большая часть данных зависит от других таблиц.Я пытаюсь поместить каждый запрос в обратный вызов предыдущего, но я не знаю, почему раскрывающийся список не заполняется правильно.
Вот моя функция ngOnInit
ngOnInit() {
this.route.params.subscribe((params: Params) => this.id_equipement = params['id']);
this.equipementService
.getEquipementById(this.id_equipement)
.subscribe((data) =>{ this.equipement = data[0];
console.log(this.equipement);
//Get the list for the dropdown
this.equipementService.getEquipementRebond().pipe(first()).subscribe(eqs => {
this.srv_rebond = eqs;
console.log(this.srv_rebond);
this.loginService.getLoginById(this.equipement.idLogin).subscribe ((login) =>{
this.login = login[0];
console.log(this.login);
if (this.equipement.idNode != null){
//Get the element to pre-fill the dropdown this.equipementService.getEquipementById(this.equipement.idNode).subscribe ((srv) => {
this.serveur_rebond = srv[0];
console.log(this.serveur_rebond.Nom);
this.editEqForm = this.formBuilder.group({
nom:[this.equipement.Nom, [Validators.required]],
ip:[this.equipement.IP, [Validators.required]],
srv_rebond:[this.serveur_rebond.Nom, [Validators.required]],
auth:[this.equipement.auth, [Validators.required]],
login:[this.login.Login, [Validators.required]],
pwd:[this.login.Password, [Validators.required]],
connex: [this.equipement.Connex],
rebond:[this.equipement.rebond],
}); });
}else {
this.serveur_rebond.Nom = 'Aucun';
this.editEqForm = this.formBuilder.group({
nom:[this.equipement.Nom, [Validators.required]],
ip:[this.equipement.IP, [Validators.required]],
srv_rebond:[this.serveur_rebond.Nom],
auth:[this.equipement.auth, [Validators.required]],
login:[this.login.Login, [Validators.required]],
pwd:[this.login.Password, [Validators.required]],
connex: [this.equipement.Connex],
rebond:[this.equipement.rebond],
});
}
});});});
}
Вот часть моей формы.Все работает, но не select formControlName = "srv_rebond"
<form [formGroup]="editEqForm" (ngSubmit)="onSubmit();">
<div class="col form-group">
<label>nom</label>
<input formControlName="nom" class="form-control" [ngClass]="{ 'is-invalid': submitted && f.nom.errors }" type=
<div *ngIf="submitted&&f.nom?.errors" class="invalid-feedback">
<div *ngIf="f.nom?.errors.required">
Le nom d'équipement est requis!
</div>
</div>
</div>
<div class="col form-group">
<label>IP</label>
<input formControlName="ip" class="form-control" [ngClass]="{ 'is-invalid': submitted && f.ip.errors }" type="t
<div *ngIf="submitted&&f.ip?.errors" class="invalid-feedback">
<div *ngIf="f.ip?.errors.required">
L'adresse IP est requise!
</div>
</div>
</div>
<div class="col form-group">
<label>Serveur de rebond</label>
<select formControlName="srv_rebond" class="form-control" [ngClass]="{ 'is-invalid': submitted && f.srv_rebond.
<option >Aucun</option>
<option *ngFor="let srv of srv_rebond ">{{srv.Nom}}</option>
</select>
<div *ngIf="submitted && f.srv_rebond?.errors" class="invalid-feedback">
<div *ngIf="f.srv_rebond?.errors.required">
Le serveur de rebond est requis!
</div>
</div>
</div>
<div class="col form-group">
<label>Authentification</label>
<select formControlName="auth" [ngClass]="{ 'is-invalid': submitted && f.auth.errors }" class="form-control" >
<option selected>SSH</option>
<option>Telnet</option>
<option>Login</option>
</select>
<div *ngIf="submitted && f.auth?.errors" class="invalid-feedback">
<div *ngIf="f.auth?.errors.required">
Le mode d'authentification est requis!
</div>
</div>
</div>
Я думаю, что проблема в функции ngOnInit, но я не знаю где.Любое предложение?