Angular “角度不显示”;“选定隐藏”;选择选项
以下是我的模型:Angular “角度不显示”;“选定隐藏”;选择选项,angular,angular5,Angular,Angular5,以下是我的模型: dataModel: { company_size: any[], company_type: any[], employment_status: any[], english_knowledge: any[], experience_years: any[], } selectedDataModel: { company_size: any, company_type: any, employment_status: any, engli
dataModel: {
company_size: any[],
company_type: any[],
employment_status: any[],
english_knowledge: any[],
experience_years: any[],
}
selectedDataModel: {
company_size: any,
company_type: any,
employment_status: any,
english_knowledge: any,
experience_years: any,
}
这是我的模板:
<ng-container *ngFor="let dm of dataModel | keys">
<select *ngIf="dataModel[dm.key].values" [(ngModel)]="selectedDataModel[dm.key]" data-live-search="true">
<option selected hidden>Choose Item</option>
<option *ngFor="let obj of dataModel[dm.key].values" [id]="obj.id">
{{obj.value}}
</option>
</select>
</ng-container>
及
选择项目
但它还不起作用
有什么解决办法吗?我认为问题在于使用
[id]
。使用此选项而不是[id]=“obj.id”
,它是:[value]=“obj.id”
在选择列表中实现“选择项目”选项的一种方法是使用未定义的值定义第一个隐藏(或禁用)选项,并在进行选择后使用*ngIf
将其删除(请参阅)。删除该选项在浏览器中很有用,因为隐藏属性实际上并不隐藏该选项(例如IE11)
选择一个项目
{{obj.value}}
一个简单的例子,考虑option=”“或option=0,但不要为null或未定义
option=""
<select [(ngModel)]="option" >
<option value="" hidden>Select one</option>
<option value="1">Uno</option>
<option value="2">dos</option>
</select>
option=“”
选择一个
联合国组织
磁盘操作系统
或
选项:编号=0
选择一个
联合国组织
磁盘操作系统
在ngModel中使用时,select标记存在一些问题。最好的解决方法是,您可以在ngModel中指定默认值。您可以参考此
<option id="-1" selected hidden>Choose Item</option>
<select [(ngModel)]="selectedDataModel[dm.key]" ...>
<option [value]="undefined" *ngIf="!selectedDataModel[dm.key]" hidden>Choose an item</option>
<option *ngFor="let obj of dataModel[dm.key].values" [value]="obj.id">{{obj.value}}</option>
</select>
option=""
<select [(ngModel)]="option" >
<option value="" hidden>Select one</option>
<option value="1">Uno</option>
<option value="2">dos</option>
</select>
option:number=0
<select [(ngModel)]="option" >
<option value="0" hidden>Select one</option>
<option value="1">Uno</option>
<option value="2">dos</option>
</select>