Angular 6 select 的默认值未在 Reactive Form 中得到 selected
Angular 6 default value of select is not getting selected in Reactive Form
我有一个表格,如下所示。并且具有默认值的下拉区域是 "ALL",其他值是从 api 调用中填充的。
<form method="POST" for enctype="multipart/form-data" [formGroup]="unitSearchForm">
<div class="form-group">
<label for="Zone">Zone</label>
<select class="form-control" id="zone" formControlName="zoneId">
<option [ngValue]="0">All</option>
<option [ngValue]="zone.ZoneId" *ngFor="let zone of (_zones|async)?.Result">{{ zone.ZoneName}}</option>
</select>
</div>
<div class="form-group">
<input class="form-control" type="text" id="search" formControlName="unitName"
placeholder="Search by Unit Name" />
</div>
<div class="form-group">
<select class="form-control" formControlName="status">
<option [ngValue]="status.Code" *ngFor="let status of _statusArr">{{status.Name}}</option>
</select>
</div>
<div class="align-self-end form-group">
<button type="submit" class="btn btn-primary" (click)="SearchUnits()"><i
class="fa fa-fw fa-search"></i>Search</button>
</div>
</form>
/*
Component Code
*/
ngOnInit() {
this.InitilizeSearchForm();
this.InitilizeSelectors();
}
private InitilizeSearchForm() {
this.unitSearchForm = this._fb.group({
zoneId: ['0'],
unitName:['',Validators.maxLength(100)],
status:['A']
});
}
private InitilizeSelectors(){
let searchCriteria: IDictionary = {}
this._statusArr=this._dataservice.GetStatus();
this._zones = this._adminService.Getzones(searchCriteria);
searchCriteria["status"] = this.unitSaveForm.get('status').value;
}
如何 select 区域中的 "All" 下拉?我在初始化表单时尝试设置值。但它不起作用。总是第一个 selected 值什么都没有。
您可以对选项使用 [value]
绑定,对 All
选项使用 [selected]
绑定:
<div class="form-group">
<label for="Zone">Zone</label>
<select class="form-control" id="zone" formControlName="zoneId">
<option value="All" [selected]="'All'">All</option>
<option [value]="zone.ZoneId" *ngFor="let zone of (_zones|async)?.Result">{{ zone.ZoneName}}
</option>
</select>
</div>
我有一个表格,如下所示。并且具有默认值的下拉区域是 "ALL",其他值是从 api 调用中填充的。
<form method="POST" for enctype="multipart/form-data" [formGroup]="unitSearchForm">
<div class="form-group">
<label for="Zone">Zone</label>
<select class="form-control" id="zone" formControlName="zoneId">
<option [ngValue]="0">All</option>
<option [ngValue]="zone.ZoneId" *ngFor="let zone of (_zones|async)?.Result">{{ zone.ZoneName}}</option>
</select>
</div>
<div class="form-group">
<input class="form-control" type="text" id="search" formControlName="unitName"
placeholder="Search by Unit Name" />
</div>
<div class="form-group">
<select class="form-control" formControlName="status">
<option [ngValue]="status.Code" *ngFor="let status of _statusArr">{{status.Name}}</option>
</select>
</div>
<div class="align-self-end form-group">
<button type="submit" class="btn btn-primary" (click)="SearchUnits()"><i
class="fa fa-fw fa-search"></i>Search</button>
</div>
</form>
/*
Component Code
*/
ngOnInit() {
this.InitilizeSearchForm();
this.InitilizeSelectors();
}
private InitilizeSearchForm() {
this.unitSearchForm = this._fb.group({
zoneId: ['0'],
unitName:['',Validators.maxLength(100)],
status:['A']
});
}
private InitilizeSelectors(){
let searchCriteria: IDictionary = {}
this._statusArr=this._dataservice.GetStatus();
this._zones = this._adminService.Getzones(searchCriteria);
searchCriteria["status"] = this.unitSaveForm.get('status').value;
}
如何 select 区域中的 "All" 下拉?我在初始化表单时尝试设置值。但它不起作用。总是第一个 selected 值什么都没有。
您可以对选项使用 [value]
绑定,对 All
选项使用 [selected]
绑定:
<div class="form-group">
<label for="Zone">Zone</label>
<select class="form-control" id="zone" formControlName="zoneId">
<option value="All" [selected]="'All'">All</option>
<option [value]="zone.ZoneId" *ngFor="let zone of (_zones|async)?.Result">{{ zone.ZoneName}}
</option>
</select>
</div>