将数据组件绑定到Angular 2中的表格显示组件

问题描述:

我的分页工作在我的Angular 2应用程序中,利用了方便的ng2分页模块。现在我想能够在组件之间传递信息。我有几个具有独特api调用的组件,它们都将它们的内容加载到相同的表格显示中。因此,该表格显示是具有表格视图的组件。将数据组件绑定到Angular 2中的表格显示组件

我已经通过使用方括号表示法来结合“记载”,这样的结合与所述数据与表格视图组件中的组件:

<tabular-display [records]="records"></tabular-display> 

然后,在“tabular-显示”组件我使用的@input()装饰有权访问这些记录的数据,如下所示:

@Input() records = []; 

在表格显示排版视图,我遍历记录该数组,然后使他们通过分页管道,如下所示:

<tr *ngFor="let record of records.data | paginate: { id: 'clients', itemsPerPage: 12, currentPage: page, totalItems: records.count }"> 

现在,仅低于此区域中的“表格显示”视图,分页管用途“分页的控件”来处理生成的从ngFor迭代以上*打印的页数。这看起来是这样的:

<pagination-controls class="paginator" (pageChange)="pageChange($event)" id="clients" 
      maxSize="15" 
      directionLinks="true" 
      autoHide="true"> 
    </pagination-controls> 

我最后的任务是让这个“pageChange()”事件中,你看到右上方这里通过对数据组件传递事件 - 所以正确的数据可以被调用。如何最好地做到这一点?我已经使用@Output()和EventEmitter()试了一下:

@Output() sendChange = new EventEmitter(); 

pageChange($event) { 
    this.sendChange.emit(this.page); 
    console.log($event); 
} 

我也得到打印到控制台正确的页码。但是数据组件如何获取(即有权访问)所发射的数据?它如何“接收”发射的数据?

顺便说一句,这里是我需要将页面转换事件传递给的函数。数据组件中的这个函数如何获得从表格显示组件发出的事件?

getPageByCategory(page) { 
    this.clientsService.getByCategory('consulting', page, this.pagesize) 
     .subscribe(resRecordsData => { 
      this.records = resRecordsData; 
      this.page = page; 
      console.log(page); 
     }, 
     responseRecordsError => this.errorMsg = responseRecordsError); 
} 

在页面上更改,更改/获取记录的内容及其相应的页面。更改检测将自动更新您的表格显示组件。

  • 用户单击第二页,发出该事件。
  • 从您的http请求中获取第2页记录,或者无论您的来源是什么。
  • 设置上述值记载,并改变检测将采取其余
+0

的护理是片状显示组件。我需要传递给数据组件的是页码。我试图通过使用EventEmitter()的pageChange()函数来传递它。但是我仍然不确定如何在数据组件中将这种变化分解为api调用。换句话说,我不清楚如何将该$事件传递给数据组件,以便生成正确的API调用。 – Muirik

+0

我在上面添加了更多信息。 – Muirik

+0

你能真正描述你的代码是什么意思吗?我从概念上理解我需要做什么。这是编码执行,暗示我。 – Muirik