打字稿:对象更改后如何更新选择

时间:2018-08-06 12:49:37

标签: angular html5 typescript ngfor

我有这个html代码:

<tr>
    <td><label>G Level 3</label></td>
    <td><select [ngModel]="selectedG3" (ngModelChange)="selectG3Changed($event)">
          <option></option>
          <option *ngFor="let g3 of gLevels3" [ngValue]="g3">{{g3.name}}</option>
        </select>
    </td>
</tr>

这是我的ts代码:

gLevels3: GLevel[];
getGLevels3(): void {
   this.httpServerService.getGLevels(3).subscribe(glevel3 => this.gLevels3 = glevel3);
}

gLevels3 是具有 Objects Array 。我想在每次调用函数 getGLevels3()时更新 select 选项

当前它不起作用。调用函数后, select 中仍然有相同的 options

如何触发更新?

1 个答案:

答案 0 :(得分:0)

我不确定您是否已消除所有其他可能性...副手代码看起来正确。在我处理的代码库中,我们遇到了相同类型的情况。我们有一个筛选选择选项的情况,它正在更新就可以了。

        <select class="tool-controls__select" style="margin-right: 4px;" *ngIf="selectFilterOptions.length > 0 && chartIdsDefined" [(ngModel)]="selectedFilterOption" (change)="selectFilterOptionOnChange()">
            <option [ngValue]="filterItem" *ngFor="let filterItem of selectFilterOptions">{{filterItem}}</option>
        </select>
        <select class="tool-controls__select" [(ngModel)]="selectedOption" (change)="selectOnChange()">
            <option [ngValue]="item" *ngFor="let item of selectOptions">{{item.name}}</option>
        </select>