Angular2 异步嵌套数据

标签 angular pipe

我有一个 Angular2 组件在表格中显示一些数据。

export class DiagnosisComponent {

  headers: Array<String> = ["hello world", "hello world"];
  table: Observable<TableData>;

  constructor(private eventService: EventService) {
    this.table = this.eventService.getDiagnosisEvents();
    this.table.subscribe(console.log.bind(console));
  }

}

这是 TableData 类

export class TableData {

  content: Array<any>;
  paging: Paging;

  constructor(obj: any) {

    this.paging = {
      size: obj.size,
      totalElements: obj.totalElements,
      currentPage: 1
    };

    this.content = obj.content;

  }

}

export interface Paging {
  size: number;
  totalElements: number;
  currentPage: number;
}

现在我想用异步管道将 table.content 数组绑定(bind)到 *ngFor。我的问题是我需要获取嵌套数据,而不是 TableData 本身。

<div class="row">

  <vpscout-filter></vpscout-filter>

  <table class="table">
    <thead>
    <tr><th *ngFor="let header of headers">{{header | translate}}</th></tr>
    </thead>
    <tbody>
    <tr *ngFor="let row of table | async ">
      <td>test</td>
    </tr>
    </tbody>
  </table>

</div>

将 *ngFor 更改为 <tr *ngFor="let row of table.content | async ">不起作用。

最佳答案

我解决了这样一个类似的问题:

<tr *ngFor="let row of (table | async)?.content ">
      <td>test</td>
</tr>

因为我在我的项目中使用 immutableJs 并将可观察数据转换为 map ,所以对我有用的确切解决方案是:

<tr *ngFor="let row of (table | async)?.get('content') ">
      <td>test</td>
</tr>

关于Angular2 异步嵌套数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41544244/

相关文章:

Angular Material : mat-select default value when using reactive forms

javascript - Angular 6 - 是否可以在同一页面上使用两个 Angular 元素组件?

c - 将 fgets() 与管道一起使用

c - 为什么管道可以使用的进程之间的关系在 Linux API 和 Bash 中不同

bash - 在 bash 脚本中倒带标准输入

angular - 清除按钮未重置 Angular 6 下拉列表中的选定值

angular - 如何在 typescript 中使用翻译管道而不是 Angular 6 中的模板

html - 如何过滤下拉列表以在列表顶部显示某些值?

java - 捕获时 ffmpeg 管道阻塞

python - 从 sys.stdin 读取管道输入时如何防止 "UnicodeDecodeError"?