Я пытался настроить сетку с помощью https://www.ag -grid.com / .Вся ситуация такова: в моем родительском компоненте я передаю, например, this.Ids = ['8436368d', '2d60dd4b', 'eb732f6d8eea'];
число этих ids
в массиве может быть 3 или 5, в зависимости от того, сколько идентификаторов дает пользователь.
для каждого ids
элемент, который я получаю дополнительно data[]
.Итак, модель выглядит так:
model: Model[] = [];
class Data {
time: number;
value: number;
id: string;
}
class Model {
data: Data[] = [];
name: string;
id: string;
}
ngOnChanges() {
this.initializeColumnDefs();
for (let id of this.ids) {
this.loadData(id);
}
}
}
private loadData(id: string) {
this.model = [];
// ....
// Generate API requests
let observables = [];
observables.push(this.http.get(url, service.contentTypeJsonHeaders).map(r => r.json()));
Observable.forkJoin(...observables).subscribe((response: any[]) => {
// ......
this.model = [].concat(this.model).concat([temp]);
}
}
});
}
private initializeColumnDefs() {
this.columnDefs = [
{
headerName: 'Col1',
colId: 'time',
field: 'time',
];
for (let i = 0; i < this.ids.length; i++) {
this.columnDefs.push({
headerName: service.InfoArray.filter(a => a.id == this.ids[i]).map(s => s.name),
field: 'value',
colId: 'value',
editable: !this.readonly,
cellEditorParams: {
useFormatter: true
}
});
}
}
Я генерирую столбцы в цикле for
, но мне не удается получить данные в него.Единственное, что мне удалось сделать, - это напечатать одинаковые данные для всех трех столбцов.Я прилагаю картину того, что мне удалось и что мне нужно.Может быть, у кого-то есть пример или идеи, что мне следует делать вместо того, что я делаю? 
Для данных JSON я пробовал различные комбинации, в настоящее время это:
model = [{
id: '123456789',
name: 'name',
data: [{
time: 10h,
value: 78,
id: '123456789
},
{
time: 11h,
value: 80,
id: '123456789
},
{
time: 12h,
value: 23,
id: '123456789
}]
},
{
id: '987654321',
name: 'name',
data: [{
time: 10h,
value: 9999,
id: '987654321
},
{
time: 11h,
value: 2222,
id: '987654321
},
{
time: 12h,
value: 1111,
id: '987654321
}]
}
]