Angular 默认选项所选属性未按预期工作

Rah*_*gli 2 angular

我想从下拉列表中选择第一个选项。但是,当我设置[attr.selected]="index == 1"[attr.selected]="index == 0"不工作但如果我将索引值条件更改为 时[attr.selected]="index == 2",它会工作。尽管存在从 0 到 2 的索引。

<select formControlName="segmentforOverlapOne" class="form-control overlap-segment-1">
  <option [attr.selected]="index == 1" *ngFor="let segment of segmentations; let index=index;" [ngValue]="index">{{segment.name}}</option>
</select>
Run Code Online (Sandbox Code Playgroud)

以下是分段数组:

[
  {
    "name": "name 1",
    "columns": [
      {
        "index": 0,
        ...
      }
    ],
  },
  {
    "name": "name 2",
    "columns": [
      {
        "index": 1,
        ...
      }
    ],
  },
  {
    "name": "name 3",
    "columns": [
      {
        "index": 2,
        ...
      }
    ]
  }
]
Run Code Online (Sandbox Code Playgroud)

Cha*_*dru 6

试试这样:

<select formControlName="segmentforOverlapOne" class="form-control overlap-segment-1"> 
    <option *ngFor="let segment of segmentations; let i = index" [attr.value]="i" [attr.selected]="i == 0 ? true : null">{{segment.name}}</option>
</select>
Run Code Online (Sandbox Code Playgroud)

  • 将 `[ngValue]` 更改为 `[attr.value]` 并将 `[attr.selected]="index == 1"` 更改为 `[attr.selected]="index == 1 ? true : null"` 已修复问题。 (2认同)