Эта проблема очень простая, я знаю, но мне нужна помощь в следующей ситуации.Сначала я хочу использовать значение баланса интерфейса Fix в одном массиве, чтобы добавить его к данным chart.js и значение имени к метке.
Я построил интерфейс и компонент.
Вы видите (и я вижу, как вы разбиваете голову о стену), что я сделал цикл for в две строки (labels: ....
и data: ....
), которые показывают, что я ожидаю.
export interface Fix {
name?: String,
balance?: number
}
import { Component, OnInit } from '@angular/core';
import { Chart } from 'chart.js';
import { Fix } from '../fix';
@Component({
selector: 'app-container',
templateUrl: './container.component.html',
styleUrls: ['./container.component.scss']
})
export class ContainerComponent implements OnInit {
public chart: Chart;
public fix: Fix[];
constructor() {
this.fix = [
{'name': 'Fix1', 'balance': 123},
{'name': 'Fix2', 'balance': 23}
]
}
ngOnInit() {
this.chart = new Chart('chart', {
type: 'doughnut',
data: {
labels: [for (let bal of this.fix) {bal.name}],
datasets: [{
label: '# of Votes',
data: [for (let bal of this.fix) {bal.balance}]
}]
}
});
}
}
Я знаю, что могу запустить цикл, подобный
for (let x if this.fix) {
labelsArray.push(x.name);
fixArray.push(x.balance);
}
, и использовать его для моего chart.js, но это подводит меня к следующему пункту.Позже вместо определения исправления в конструкторе, объект будет выведен из дочернего компонента.Каждый раз, когда значения меняются, график должен обновляться.