Angular 5:具有嵌套选择选项的ngFor

时间:2018-07-09 14:07:20

标签: angular ngfor

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

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

如果用户更改版本,我想将整个对象推送到我的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);
  }

2 个答案:

答案 0 :(得分:0)

应该这样工作:

<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>

发生了什么变化:

  • 已删除(更改)(选择)
  • 在选项上应用(click)=“ changeSelectedItem(version)”

答案 1 :(得分:0)

<select (change)="changeSelectedItem($event.target.value, object)">

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