未根据ngModel选择的值

时间:2018-08-15 08:24:52

标签: angular

如果从BE获取选项,我有一个选择,一旦获取,我就会填充选项。 ngModule在另一步骤中设置,并且等于选项之一。 我正在寻找的结果是该选项与我的模型相同。

    <select class="form-control" id="accident-" [(ngModel)]="accident" required>
      <option *ngFor="let a of accidents" [ngValue]="a">{{a.text | titlecase}}</option>
    </select>

Br

2 个答案:

答案 0 :(得分:2)

请向事故对象添加一个id属性,然后

<select class="form-control" id="accident-" [(ngModel)]="selectedAccident.id" required>
      <option *ngFor="let a of accidents" [ngValue]="a.id">{{a.text | titlecase}} 
      </option>
</select>

在这里,您必须根据业务需求在 TS 文件中设置selectedAccident

答案 1 :(得分:2)

Angular使用对象标识来选择选项。

要自定义默认的选项比较算法,<select>支持compareWith输入。

HTML文件:

<select class="form-control" id="accident-" [(ngModel)]="accident" required [compareWith]="byAccident">
  <option *ngFor="let a of accidents" [ngValue]="a">{{a.text | titlecase}}</option>
</select>

TS文件:

byAccident(item1, item2) {
   return item1 && item2 ? item1.text === item2.text : item1 === item2;
}

参考:https://angular.io/api/forms/SelectControlValueAccessor#caveat-option-selection