RSS Git Download  Clone
Raw Blame History
import {Directive, Input, Injectable, ViewContainerRef, OnInit, OnChanges, SimpleChanges} from '@angular/core';

import { CompileHtmlService } from './CompileHtmlService';

@Directive({ selector: '[p3xCompileHtml]' })
@Injectable()
export class CompileHtmlAttribute implements OnInit, OnChanges{

    @Input('p3xCompileHtml') p3xHtml: string;

    @Input() p3xCompileHtmlRef: any;

    @Input() p3xCompileHtmlImports: any[];

    update() {
        this.service.compile({
            template: this.p3xHtml || '',
            container: this.container,
            ref: this.p3xCompileHtmlRef,
            imports: this.p3xCompileHtmlImports
        })
    }

    ngOnInit() {
        this.update();
    }

    ngOnChanges(changes: SimpleChanges) {
        this.update();
    }

    constructor(
        private container: ViewContainerRef,
        private service: CompileHtmlService
    ) {}
}