【发布时间】:2018-12-02 23:47:37
【问题描述】:
我正在开发一个 Angular 6 项目,我正在通过 Observable 将 AWS DynamoDB 表中的数据加载到 Material Table 组件中。我使用 angular-cli 生成表的初始结构,然后添加我自己的服务来获取外部数据,因为该示例使用数组中的硬编码数据。
一切似乎都在工作(我可以看到通过 console.log 返回的正确数据),除了在我的初始加载时,我从 observable 返回的数据没有填充到表中。事实上,如果我检查“this.data”变量,它似乎立即被设置回“未定义”。如果我在分页组件上选择并更改每页的结果数,则插入 observable 返回的数据。
connect(): Observable<DynamoTableItem[]> {
// Combine everything that affects the rendered data into one update
// stream for the data-table to consume.
const dataMutations = [
observableOf(this.data),
this.paginator.page,
this.sort.sortChange
];
// Set the paginators length
this.paginator.length = this.data.length;
return merge(...dataMutations).pipe(map(() => {
return this.getPagedData(this.getSortedData([...this.data]));
}));
}
如果有人不介意看一下,我已将该项目放在 stackblitz 上。
重现问题:
- 转至:https://stackblitz.com/edit/mat-table-dynamo
- 注意表中没有数据。
- 选择“每页项目数”下拉菜单并更改为其他值。
- 该表填充了从 Observable 返回的数据。
感谢您的帮助!
【问题讨论】:
标签: javascript angular datatable rxjs angular-material