Angular 5:带有嵌套 select 选项的 ngFor

Angular 5: ngFor with nested select options

我有一组对象。这些对象具有 属性 版本。版本是一个字符串数组。

我遍历对象。对于每个对象,我都希望有一个包含所有可用版本的下拉字段。

如果用户更改版本,我想将整个对象推送到我的 changeSelectedItem() 函数。

我能够将“[object Object]”打印到控制台。如我所见,[object Object] 已经被推送到我的函数中。

如何实现我想要的功能?

我的HTML:

<tr *ngFor="let object of storeFilesService.objects">
      <td><input type="checkbox" value="a" (click)="checkobject(object)" name="checkbox" [checked]="true">
      </td>
      <td>{{object.id}}</td>
      <td>{{object.name}}</td>
      <td>{{object.version}}
        <select (change)="changeSelectedItem($event.target.value)">
          <option *ngFor="let version of object.versions" value={{object}}>
            {{version}}
          </option>
        </select>
      </td>

TS

      changeSelectedItem(filterVal: any) {
    console.log(filterVal);
  }

这应该是这样工作的:

<tr *ngFor="let object of storeFilesService.objects">
  <td><input type="checkbox" value="a" (click)="checkobject(object)" name="checkbox" [checked]="true">
  </td>
  <td>{{object.id}}</td>
  <td>{{object.name}}</td>
  <td>{{object.version}}
    <select >
      <option *ngFor="let version of object.versions" (click)="changeSelectedItem(version)">
        {{version}}
      </option>
    </select>
  </td>
</tr>

发生了什么变化:

  • 已于 select
  • 删除(更改)
  • 已应用(点击)="changeSelectedItem(version)" 选项
<select (change)="changeSelectedItem($event.target.value, object)">

正如@mbppv 所述,这符合我的需要,谢谢。