import { Directive, Input, ViewContainerRef, TemplateRef, ChangeDetectionStrategy, ChangeDetectorRef, OnInit, KeyValueDiffers, KeyValueDiffer, DoCheck } from '@angular/core'; @Directive({ selector: '[tabTransclude]', }) export class TabTranscludeDirective implements OnInit, DoCheck { _trancludeTempl: TemplateRef; setIntervalTemp: any; private _differ: any; @Input('tabTransclude') get trancludeTempl() { return this._trancludeTempl; } set trancludeTempl(templateRef: TemplateRef) { this._trancludeTempl = templateRef; if (templateRef) { this.viewRef.createEmbeddedView(templateRef); } // if (!this._differ && templateRef) { // this._differ = this._differs.find(templateRef).create(); // } } viewRef: ViewContainerRef; constructor(viewRef: ViewContainerRef, private _differs: KeyValueDiffers) { // setTimeout(() => { this.viewRef = viewRef; // }, 5000); // this.cd.detectChanges(); } ngOnInit() { // this.setIntervalTemp = setInterval(() => { // if (this._trancludeTempl && this.viewRef) { // console.log('sa'); // // this.viewRef = this.viewRef; // clearInterval(this.setIntervalTemp); // } // }, 0); } ngDoCheck() { // const CHANGE = this._differ.diff(this._trancludeTempl); // if (CHANGE) { // this.viewRef.createEmbeddedView(this._trancludeTempl); // } } // ng }