Вы можете добавить *ngIf
в родительский контейнер так, чтобы компонент mat-select не загружался до тех пор, пока не будет подписано наблюдаемое и не будет назначено loadedCompanies
.
<mat-form-field *ngIf = "loadedCompanies">
<mat-select formControlName="company" placeholder="Select
Company" [(value)]="selectedCompany" [compareWith]="compareFn">
<mat-option *ngFor="let lC of loadedCompanies"
[value]="lC.id">
{{lC.name}}
</mat-option>
</mat-select>
</mat-form-field>
Для компании FormControl должно быть задано начальное значение null, а не весь массив loadedCompanies
.
this.form = new FormGroup({
id: new FormControl(null),
company: new FormControl(null)
});
Вот как вы должны заполнить массив loadedCompanies
.
loadedCompanies: Company[];
ngOnInit() {
.
.
// other lines of code before this
this.companyService.getCompanyList().subscribe(companyData => {
this.loadedCompanies = companyData.companies;
});
}