问题描述
我在 mat-expansion 面板中有一个反应式表单,用于添加和编辑记录。在这种形式中,其中一个字段是 mat-select 字段。在同一页面上,我有一个 mat-table,每一行都有一个编辑按钮。单击该编辑按钮后,表单会预先填充行数据。
表单还有一个清晰的表单按钮。当我第一次单击表格行上的编辑按钮时,这些值会在表单中正确填充。然后当我单击清除按钮时,它会清除表单。但是,当我再次单击编辑按钮时,mat-select 字段不会填充,而 mat-input 字段会正确填充。
如果我刷新页面并单击编辑行,它第一次再次起作用,然后就不起作用了。
无法弄清楚我哪里出错了。请帮忙
html 模板的一部分
<mat-form-field>
<mat-label>User Name</mat-label>
<input matInput formControlName="userName" [(value)]="userNameVal">
<mat-hint>min 3 characters</mat-hint>
</mat-form-field>
<mat-form-field>
<mat-label>Select Role</mat-label>
<mat-select matInput formControlName="role" [(value)]="userRoleVal">
<mat-option value='User'>User</mat-option>
<mat-option value='Manager'>Manager</mat-option>
<mat-option value='Admin'>Admin</mat-option>
</mat-select>
</mat-form-field>
component.ts
onEdit(account) {
this.editMode = true;
this.userNameVal = account.userName;
this.userRoleVal = account.role;
console.log('userRoleVal',this.userRoleVal);
//gives correct result but does not get bound to display the value on UI second time onwards
this.empId = account.employeeId;
this.form.get('userName').reset({value: account.userName,disabled: true});
this.form.get('employeeId').reset({value: '',disabled: true});
this.openExpPanel = true;
}
onClearExpPanel() {
// reset form
this.form.reset();
this.editMode = false;
this.form.get('userName').reset({value: '',disabled: false});
this.form.get('employeeId').reset({value: '',disabled: false});
this.empEmail = "";
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)