Angular4: select [selected] 第一次不工作

Angular4: select [selected] not work for the first time

有一个密码:

<select name="department" class="form-control select" [(ngModel)]="departments" formControlName="departmentControl">    
    <option *ngFor="let department of departments" [ngValue]="department" [selected]="department.id == this.departmentid">
      {{ department.name }}
    </option>
  </select>

和功能:

isSelected(department): boolean {
  debugger;
  return department.id == this.departmentid;
}

department - 是用户详细信息组件的嵌套组件。在我第一次 select 用户详细信息组件之后,部门未 selected。但是第二次一切正常。哪里出错了?

你的ngModel是错误的,你应该把它写成departmentidngValue应该是部门的ID,如下

<select name="department" class="form-control select" [(ngModel)]="departmentid" formControlName="departmentControl">    
    <option *ngFor="let department of departments" [ngValue]="department.id" [selected]="department.id == this.departmentid">
      {{ department.name }}
    </option>
  </select>

参考此了解更多信息

不需要 : [selected]="department.id == this.departmentid" 因为你正在使用 [(ngModel)]

[(ngModel)]="departments"更改为[(ngModel)]="departmentid"

[ngValue]="department"更改为[ngValue]="department.id"

最后应该是这样的:

<select name="department" class="form-control select" [(ngModel)]="departmentid" formControlName="departmentControl">    
    <option *ngFor="let department of departments" [ngValue]="department.id" >
        {{ department.name }}
    </option>
</select>

WORKING DEMO