私はMATテーブルを使っています、そして、私はMattabledataSourceが観察可能で使用しようとしています(私はWebサービスからデータを取得します)が、mattabledataSource配列の代わりに監視可能なものを使用します。
この問題に対する唯一の解決策は、ngoninitメソッドの観察可能なものを購読し、新しいデータが到着したときに常に新しいMattableDataSourceを作成しますか?
これは私が今まで持っているものですが、これがMattableDataSourceが観察可能で働くための正しい解決策であるかどうかわかりません。
dataSource: MatTableDataSource<Thing>;
@ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;
@ViewChild(MatSort, { static: true }) sort: MatSort;
ngOnInit() {
getThings().subscribe(things => {
this.dataSource = new MatTableDataSource(things);
this.dataSource.paginator = this.paginator;
this.dataSource.sort = this.sort;
});
}
_
私はそのためにライブラリをリリースしました:@matheo/datasource
_
この記事の基本概念について説明します。
[。] https://medium.com/@matheo/Reactive-DataSource-for-angular -1D869B0155F6
そして、コード例では、FireBaseデータベースからアイテムを取得し、ページネーションを操作する方法を確認できます。 REPOの例のソートとフィルタ
[。ね。]あなたがそれを好きでそれについてあなたの意見を与えることを願っています;)
あなたは観測可能なものを使うことができます、ちょうど(*)
[dataSource]="dataSource|async"
_
(*)本当にパイプ非同期を使用する必要はありません
例の例を参照してください stackblitz 、ここで、docの最初の例を置き換えます
dataSource = of(ELEMENT_DATA).pipe(delay(1000));
_