xenos
Version:
Xenos is a data grid built upon angular2 and bootstrap.
34 lines (27 loc) • 927 B
text/typescript
import { Directive, ElementRef, Renderer, Input } from "@angular/core";
import { DataGridColumn } from "./data-grid-column";
import { ElementRenderer } from "./element-renderer";
interface CandidateRenderArgs {
data: any,
column: DataGridColumn
}
({
selector: "[xnCandidate]"
})
export class CandidateDirective {
private elementRenderer: ElementRenderer;
constructor(
private renderer: Renderer,
private elementRef: ElementRef) {
this.elementRenderer = new ElementRenderer(elementRef, renderer);
}
()
public set xnCandidate(args: CandidateRenderArgs) {
let func: (x: any) => any = args.column.candidateRenderer || (x => `<span>${x}</span>`);
let value = func(args.data);
if (value == null || value == "") {
return;
}
this.elementRenderer.render(value);
}
}