1

を使用してmat-table記事のリストを表示しています。異なる商品の価格を変更できます。記事の価格を更新した後、更新された記事 (更新されたリソース) を取得しています。getArticles を呼び出してすべての記事をロードすることなく、データソースを更新したいと考えています。これは、更新済みの記事が既にあるためです。

更新されたアイテムの古いものを置き換えるデータソースを更新できますか、それを行う適切な方法はどれですか?

private updateArticle(value: any, id: string): void {
    this.dataService.patchArticle(id,price)
        .subscribe(
            article => {
               this.dataService.getArticles(); //that is unnecessary, I have the updated article in variable 'article'
               //this.replaceArticleDatasource(article) //update datasource
              .subscribe(
                  data => {
                    this.articles = data;
                    this.dataSource = new MatTableDataSource(this.articles);
              });
            }
          );
}
4

2 に答える 2

0

// 試すこともできます..役立つかもしれません

  datasource:any;

  @ViewChild(MatPaginator) paginator: MatPaginator;

  @ViewChild(MatSort) sort: MatSort;


  private updateArticle(value: any, id: string): void 
  {
    this.dataService.patchArticle(id,price).subscribe(article => 
    {
      this.datasource = new MatTableDataSource();

      let article_filtered =

      this.article.find(data => data.id === article.id);

      this.datasource.data = article_filtered;

      **// for sorting in mat table**

      this.datasource.sort = this.sort;

      **// for pagination in mat table** 

      this.datasource.paginator = this.paginator; 

   });
于 2019-03-07T05:26:12.793 に答える