晚上好,我正在 Angular5 开展一个项目 . 特别是我有一个材料选择( mat-select )应该选择我作为用户的角色, mat-select 是这样组成的:

<mat-form-field>
    <mat-select placeholder="Scegli un opzione" [formControl]="form.controls['Ruolo']"  [(ngModel)]="admin.Ruolo">
         <mat-option *ngFor="let key of keys" [value]="key">{{roles[key]}}</mat-option>
     </mat-select>
</mat-form-field>

在我的引用打字稿文件中,我有一个处理所有内容的表单组 . 实际上,当我从服务器返回用户数据时,我以这种方式分配给表单控件:

this.form.controls.Id.setValue(result.Id);
this.form.controls.Nome.setValue(result.Nome);
this.form.controls.Cognome.setValue(result.Cognome);
this.form.controls.Ruolo.setValue(result.Ruolo);
this.admin = result;

其他值都设置正确,但问题发生在 Ruolo 字段,这是一个枚举(数字) .

这是构造函数中的原始设置表单组:

this.form = this.fb.group({
        Id: [null],
        Nome: [null, Validators.compose([Validators.required, Validators.minLength(3)])],
        Cognome: [null, Validators.compose([Validators.required, Validators.minLength(3), Validators.maxLength(15)])],
        Ruolo: [null, Validators.required],
    });

为了完整的信息,这是我的类和枚举:

export class Admin {
     Id: number;
     Nome: string;
     Cognome: string;
     Ruolo: ERolesAdmin;
}
export enum ERolesAdmin {
    SuperAdmin = 1,
    Admin = 2
}

如何让mat-select明白它应该预先选择该值?

大家好 .