无法在选项(“角度”下拉列表中)中选择值。

时间:2019-03-12 12:02:42

标签: angular select html-select

我进行了广泛搜索。我从other answers得到的是,如果我想选择特定的选项,则需要使用[selected]

它似乎不起作用。为什么? 这是我所拥有的:

<ngx-datatable-column name="status" prop="operationStatus" [flexGrow]="1">
    <ng-template let-value="value2" let-row="row" let-rowIndex="rowIndex" gx-datatable-cell-template>
          <select class="geraeteStatus" [(ngModel)]="selectableGerateStatus">
             <option *ngFor="let e of selectableGerateStatus" [ngValue]="e" 
                 [selected]="e.id === value2">
                {{e.id}}
             </option>
          </select>
   </ng-template>
</ngx-datatable-column>

我确信e.id的值每次迭代至少等于value2的值。但是它只是行不通。 实际上,我可以将所需的任何内容(例如eid === 2,甚至是“ true”)放入[selected]中,它没有任何作用。 我不知道我在想什么。任何答案都受到高度赞赏。

3 个答案:

答案 0 :(得分:0)

您需要将应绑定到“ select”的字段设置为ngModel,而不是可能的选项列表。请像这样更改您的代码:

<select class="geraeteStatus" [(ngModel)]="x.status">
         <option *ngFor="let e of selectableGerateStatus" [ngValue]="e">
            {{e.id}}
         </option>
</select>

' x.status '必须替换为您的真实字段。

答案 1 :(得分:0)

使用value而不是ngValue绑定选项,如下所示。

<select class="my-status" [(ngModel)]="myModel.status">
         <option [ngValue]="null" selected disabled> Select Status </option>
         <option *ngFor="let e of selectableGerateStatus" [value]="e">
            {{e.id}}
         </option>
</select>

答案 2 :(得分:0)

我将介绍如何解决该问题。请注意,我是新手,对角度而言,我的方法可能是基本的。我还要感谢@Eliseo,他强调了 ngModel和selected不能一起使用的事实。这就是为什么我摆脱了前者,只使用了选择的方法:

component.html

 <select class="geraeteStatus" (change)="changeGaerateStatus($event, rowIndex)">
          <option *ngFor="let e of selectableGerateStatus" [selected]="value == e.id">
               {{e.label}}
            </option>
 </select>

和.ts文件:

    this.selectableGerateStatus = [
  {
    id: 0,
    label: BaseDataComponent.NEW
  }, {
    id: 1,
    label: BaseDataComponent.ACTIVE
  }, {
    id: 2,
    label: BaseDataComponent.DEINSTALLED
  }
]

它解决了我的问题,但这可能不是最好的方法。随时发表评论。