угловая проблема рендеринга таблицы 2 ngPrime - PullRequest
0 голосов
/ 01 мая 2018

Я сам написал в моем компоненте json, который я не могу отобразить в шаблоне, используя ngPrime. Я пробовал подобные вопросы, но помочь. Я получаю ошибку, как показано ниже

Ошибка: не удается найти другой поддерживающий объект «[объект]] типа« объект ». NgFor поддерживает только привязку к итерациям, таким как массивы.

// component.ts

export class AppComponent implements OnInit {
  title = 'app';
  sales: any = [
    { brand: 'Apple', lastYearSale: '51%', thisYearSale: '40%', lastYearProfit: '$54,406.00', thisYearProfit: '$43,342' },
    { brand: 'Samsung', lastYearSale: '83%', thisYearSale: '96%', lastYearProfit: '$423,132', thisYearProfit: '$312,122' },
    { brand: 'Microsoft', lastYearSale: '38%', thisYearSale: '5%', lastYearProfit: '$12,321', thisYearProfit: '$8,500' },
    { brand: 'Philips', lastYearSale: '49%', thisYearSale: '22%', lastYearProfit: '$745,232', thisYearProfit: '$650,323,' },
    { brand: 'Song', lastYearSale: '17%', thisYearSale: '79%', lastYearProfit: '$643,242', thisYearProfit: '500,332' },
    { brand: 'LG', lastYearSale: '52%', thisYearSale: ' 65%', lastYearProfit: '$421,132', thisYearProfit: '$150,005' },
    { brand: 'Sharp', lastYearSale: '82%', thisYearSale: '12%', lastYearProfit: '$131,211', thisYearProfit: '$100,214' },
    { brand: 'Panasonic', lastYearSale: '44%', thisYearSale: '45%', lastYearProfit: '$66,442', thisYearProfit: '$53,322' },
    { brand: 'HTC', lastYearSale: '90%', thisYearSale: '56%', lastYearProfit: '$765,442', thisYearProfit: '$296,232' },
    { brand: 'Toshiba', lastYearSale: '75%', thisYearSale: '54%', lastYearProfit: '$21,212', thisYearProfit: '$12,533' }
];

ngOnInit() {
}
<p-table [value]="sales">
  <ng-template pTemplate="body" let-data>
    <tr *ngFor="let row of data">
      <td>{{row.brand}}</td>
    </tr>
  </ng-template>
</p-table>

1 Ответ

0 голосов
/ 01 ноября 2018

В p-таблице [value] = "sales" "sales" - это массив объектов. По умолчанию p-таблица выполнит цикл. Поэтому в ng-шаблоне «let-data» (данные - это объект) будет выполнять массив объектов один за другим. Поэтому нам не нужно зацикливать отдельный объект. Правильный код вашего примера:

<p-table [value]="sales">
        <ng-template pTemplate="body" let-data>
            <tr>
                <td>{{data.brand}}</td>
            </tr>
        </ng-template>
    </p-table>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...