Angular 2 - 在硬编码默认值时在下拉列表中设置默认值
Angular 2 - setting default value in dropdown when default is hard coded
我有以下下拉列表。我想将所有患者设置为默认值。
<select [(ngModel)]="searchModel.careprovider">
<option [value]="0">All Pateints</option>
<option *ngFor="let user of practiceUsers" [value]="user._id.$oid">
{{user.dn}}
</option>
</select>
我的模型是这样声明的:
searchModel: any = { location: null, practice: null, name: '', careProvider: 0 };
我这样设置 practiceUsers:
this._practice.getUsers(this.searchModel.practice).subscribe(result => {
this.practiceUsers = result;
this.searchModel.careProvider = 0;
});
无论我如何更改它,我总是只得到一个空白选项作为默认值。我尝试在加载后向 this.practiceUsers
数组添加一个对象,然后设置模型值。我试过设置带引号和不带引号的模型值,以查看数字或字符串是否有所不同。我尝试的所有操作仍然导致默认为空白选项。
在 Angular 1 中,我会使用 ng-options
,但它不再适用于 Angular 2,而且我找到的每个示例都显示使用 ngFor
对于下拉菜单。
对象属性区分大小写,在您的对象中,属性称为 careProvider
,但在您的模板中,您使用的 searchModel.careprovider
小写 p
。我认为您还必须使用 NgValue
指令而不是 value
因为您使用的是 NgModel
指令。所以,这应该有效:它不起作用
<select [(ngModel)]="searchModel.careProvider">
<option [ngValue]="0">All Pateints</option>
<option *ngFor="let user of practiceUsers" [ngValue]="user._id.$oid">
{{user.dn}}
</option>
</select>
尝试使用 [selected] 属性。我这样解决了类似的问题:
<select>
<option *ngFor="let option of options" value="{{option.id}}" [selected]="option === selectedOption">
{{option.name}}
</option>
</select>
希望对您有所帮助
<select class="form-control" id="policeid_country_id" name="policeid_country_id" formControlName="policeid_country_id">
<option [ngValue]="null">Select</option>
<option [ngValue]="country.id" *ngFor="let country of countries">{{country.country}}</option>
</select>
我有以下下拉列表。我想将所有患者设置为默认值。
<select [(ngModel)]="searchModel.careprovider">
<option [value]="0">All Pateints</option>
<option *ngFor="let user of practiceUsers" [value]="user._id.$oid">
{{user.dn}}
</option>
</select>
我的模型是这样声明的:
searchModel: any = { location: null, practice: null, name: '', careProvider: 0 };
我这样设置 practiceUsers:
this._practice.getUsers(this.searchModel.practice).subscribe(result => {
this.practiceUsers = result;
this.searchModel.careProvider = 0;
});
无论我如何更改它,我总是只得到一个空白选项作为默认值。我尝试在加载后向 this.practiceUsers
数组添加一个对象,然后设置模型值。我试过设置带引号和不带引号的模型值,以查看数字或字符串是否有所不同。我尝试的所有操作仍然导致默认为空白选项。
在 Angular 1 中,我会使用 ng-options
,但它不再适用于 Angular 2,而且我找到的每个示例都显示使用 ngFor
对于下拉菜单。
对象属性区分大小写,在您的对象中,属性称为 careProvider
,但在您的模板中,您使用的 searchModel.careprovider
小写 p
。我认为您还必须使用 NgValue
指令而不是 value
因为您使用的是 NgModel
指令。所以,这应该有效:它不起作用
<select [(ngModel)]="searchModel.careProvider">
<option [ngValue]="0">All Pateints</option>
<option *ngFor="let user of practiceUsers" [ngValue]="user._id.$oid">
{{user.dn}}
</option>
</select>
尝试使用 [selected] 属性。我这样解决了类似的问题:
<select>
<option *ngFor="let option of options" value="{{option.id}}" [selected]="option === selectedOption">
{{option.name}}
</option>
</select>
希望对您有所帮助
<select class="form-control" id="policeid_country_id" name="policeid_country_id" formControlName="policeid_country_id">
<option [ngValue]="null">Select</option>
<option [ngValue]="country.id" *ngFor="let country of countries">{{country.country}}</option>
</select>