Я могу получить данные из API для отображения, используя *ngFor='let earning of symbolEarnings.earnings'
> {{earning.actualEPS}}
Теперь я пытаюсь использовать таблицу соответствия, чтобы она была одинаковой с остальной частью моего приложения.
Теперь, если я использую symbolEarnings
, который является объектом Object в [dataSource], я получаю ошибку
При условии, что источник данных не соответствует массиву, Observable или DataSource
Теперь то, что я делал последние часы, пытается преобразовать в массив.Для справки: это данные.
{"symbol":"AAPL","earnings":
[
{"actualEPS":2.91, "EPSReportDate":"2018-11-01"},
{"actualEPS":2.34,"EPSReportDate":"2018-07-31"}
]}
Так что я использую это, чтобы получить symbolEarnings
getEarning(): void {
const id = this.route.snapshot.paramMap.get("id");
this.svc.getEarningById(id).subscribe(data => {
this.symbolEarnings = data;
, который прекрасно работает, когда я 'let x of symbolEarnings.earnings' {{x.actualEPS]]
Данныев настоящее время является объектом Object, поэтому я выделил ошибку, выделенную выше.
Я пытаюсь преобразовать часть дохода в массив, но безрезультатно.this.test = this.symbolEarnings.earnings;
или this.testArray = Object.keys(this.test).map(i => this.test[i]);
Интересно то, что testArray
работает для [dataSource]
, но мне нужно сделать *ngFor='let y of testArray' [dataSource]="testArray"
, чтобы получить столбец, затем использовать <td mat-cell>{{y.actualEPS}}</td>
, который дает результат, но повторяется нанесколько столов.
For example, EPS: 2, 2, 2 EPS: 3, 3, 3 EPS: 4, 4, 4 rather than EPS: 2, 3, 4
Так что я вроде как все понял, но мне явно нужна помощь с этим.Дайте знать, если у вас появятся вопросы!Спасибо