所以我有一个奇怪的行为,我想在我的下拉列表中实现。我有两个场景,两个都有不同的默认选择值。
方案1:如果用户角色为admin,则不会禁用下拉菜单,并且“选择位置”占位符将显示为选定的默认值。
场景2:如果用户角色是职员,则下拉列表将被禁用,所选值将是下拉选择中的特定位置。
虽然我获得了角色权限和禁用/启用的设置,但我不确定如何动态更改下拉列表的选定值。这是反应形式组内,所以不确定我可以使用ngModel还是可以?
这是我的下拉列表:
<select [ngModel]="null" formControlName="location" required >
<option value="null" disabled>{{'SelectLocation' | translate}}</option>
<option selected *ngFor="let store of location" [ngValue]="store._storeKey">{{ store._storeName }}</option>
</select>
这是我的禁用/启用下拉列表的检查:
checkUserPermissions() {
if (this.userPermissions._userPrivilegeKey === 100) {
//TODO: Default to store2 of list for example
this.transactionForm.controls['location'].value = stores._store; // This is right?
this.transactionForm.controls['location'].disable();
} else if (this.userPermissions._userPrivilegeKey === 200) {
//TODO: Default to select location placeholder (currently working)
this.transactionForm.controls['location'].enable();
}
}
答案 0 :(得分:1)
您应该使用patchValue函数,而不是在处理表单时直接指定值
this.transactionForm.controls['location'].patchValue(stores._store)