Таблица матов Angular только последние данные печатаются из массива каждой буквы в каждой строке - PullRequest
0 голосов
/ 24 марта 2020

table.component.ts

displayColumns: string[] = [ 'Feedback'] ;
listData: MatTableDataSource<any> ;
//listData;
myJSON ;
records: number;
objPutss: Post;
catupdated = false;
searchKey: string ;
@ViewChild(MatSort , {static: false}) sort: MatSort;
@ViewChild(MatPaginator , {static: false}) paginator: MatPaginator ;

tableLoad(event: any) {
this.fdbif = false;
  const selcetdCategoryCount = event.target.innerHTML;
this._responseService.getData().subscribe(data => {
  this.toolDataSet = data;
  for (let i = 0 ; i < this.toolDataSet.length ; i++) {
  // tslint:disable-next-line: triple-equals
  if (this.toolDataSet[i].Tool == this.selectedTool) {
      if(this.toolDataSet[i].Corrected_Category == selcetdCategoryCount){
      this.fdb[i]=this.toolDataSet[i].Feedback;
      this.listData = new MatTableDataSource(this.fdb[i]) ;
            this.listData.sort = this.sort;
  this.listData.paginator = this.paginator ;
      this.countt++;
      }
  }
  }

  console.log(this.countt);
              console.log(this.fdb);
         // this.listData = new MatTableDataSource(this.fdb) ;
   });
  }

table.component. html

<div *ngIf="countClicked">
        <mat-table [dataSource]= "listData" matSort >      
      <ng-container matColumnDef="Feedback">
            <mat-header-cell *matHeaderCellDef mat-sort-header ><span>Feedback </span></mat-header- 
      cell>
            <mat-cell *matCellDef="let element "  >
                {{element}}
            </mat-cell>
     </ng-container>

     <mat-header-row *matHeaderRowDef="displayColumns"></mat-header-row>
    <mat-row *matRowDef="let row; columns: displayColumns"></mat-row> 
</mat-table>

<mat-paginator showFirstLastButtons
[pageSize]="10"></mat-paginator>

</div>

Я могу получить данные в консольном журнале, т.е. если есть пять строк данных эти пять строк я могу видеть в журнале cosole, где, как и в таблице матов, отображается только 5-я (последняя) строка, что каждая буква слова также отображается в каждой строке введите описание изображения здесь

console.log (countt) дает мне точный счет

Может кто-нибудь помочь мне в решении этой проблемы

1 Ответ

0 голосов
/ 25 марта 2020

@ Raje sh Я мог видеть, что вы перебираете l oop и создаете новый источник данных this.listData = new MatTableDataSource(this.fdb[i]) ; ... Таблица Mat работает так, что вам просто нужно передать весь массив в таблицу объект, и он позаботится о разборе и построении значения.

Моя рекомендация, не создавайте MatTableDataSource внутри для l oop, создайте данные в формате массива, которые вы бы распечатали на этом sh table и просто передайте массив в таблицу mat.

Демонстрационная ссылка: Массив в таблицу mat

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...