MatDialog не отображает значения, которые были обновлены через подписку - PullRequest
0 голосов
/ 20 февраля 2019

У меня есть MatDialog, который не отображает данные, передаваемые в него.Почему поле last_name заполнено правильно, а companyDropdown не заполнено?Консольный вывод onSubscribe запускается, как и ожидалось, представление просто не обновляется после его запуска.

HTML

    <h4>Last Name:</h4>
    <mat-form-field>
        <input placeholder="Last name:" [(ngModel)]="data.last_name">
    </mat-form-field>
<h4>Company: {{data|json}}</h4>
<mat-form-field>
    <mat-select [(ngModel)]="data.company_id">
        <mat-option *ngFor="let s of data.companyDropdown" [value]="s.id">{{s}}</mat-option>
    </mat-select>
</mat-form-field>

TS

export class UserEditDialogComponent implements OnInit{

constructor(public dialogRef: MatDialogRef<UserEditDialogComponent>,
    @Inject(MAT_DIALOG_DATA) public data: ArgosUserModel,
    private svc: GreencardService) {
}

ngOnInit() {
    console.log('dialog on init()')
    this.data.lgid = 1;//TEMP. need to pass from c#
    this.svc.getCompanies(this.data.lgid.toString()).
        subscribe(x => { this.data.companyDropdown = x; console.log('dialog with dropdown: ' + JSON.stringify(this.data.companyDropdown)) })
}

1 Ответ

0 голосов
/ 20 февраля 2019

это работает для меня.попробуйте сначала с небольшим статическим массивом / объектом.он должен работать.также не должна ли ваша интерполяция s {{s}} быть чем-то вроде {{s.property}}?

 <mat-form-field>
        <mat-select [(ngModel)]="data.optionselected">
            <mat-option *ngFor="let option of data.options" [value]="option.id">{{option.name}}</mat-option>
        </mat-select>
    </mat-form-field>
...