renderer.component.ts
1.38 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
import { Component } from '@angular/core';
import { AgRendererComponent } from 'ag-grid-ng2/main';
import { RegionSelectList } from '../models/region-select-list';
@Component({
selector: 'render-cell',
template: `<span *ngIf="this.model !== undefined">{{this.label}}</span>`
})
export class RendererComponent implements AgRendererComponent {
private params: any;
private valueCol: string = 'id';
private labelCol: string = 'name';
private model: Object = null;
private label: string = null;
agInit(params: any): void {
this.params = params;
if (params.colDef.cellEditorParams && params.colDef.cellEditorParams.valueCol) {
this.valueCol = params.colDef.cellEditorParams.valueCol;
}
if (params.colDef.cellEditorParams && params.colDef.cellEditorParams.labelCol) {
this.labelCol = params.colDef.cellEditorParams.labelCol;
}
this.setValue(params);
}
refresh(params: any): void {
this.params = params;
this.setValue(params);
}
private setValue(params) {
this.model = params.value;
let label = this.params.colDef.cellEditorParams.data.find((element, index, array) => {
if (element[this.valueCol] === params.value) {
return true;
}
});
if (label) {
this.label = label[this.labelCol];
}
}
}