renderer.component.ts 1.38 KB
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];
        }
    }
}