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>