UNPKG

angular2-json-schema-form

Version:
47 lines (40 loc) 1.31 kB
import { Component, ComponentFactoryResolver, ComponentRef, Input, OnChanges, OnInit, ViewChild, ViewContainerRef } from '@angular/core'; import { JsonSchemaFormService } from '../library/json-schema-form.service'; @Component({ selector: 'select-framework-widget', template: `<div #widgetContainer></div>`, }) export class SelectFrameworkComponent implements OnChanges, OnInit { private newComponent: ComponentRef<any> = null; @Input() formID: number; @Input() layoutNode: any; @Input() layoutIndex: number[]; @Input() dataIndex: number[]; @ViewChild('widgetContainer', { read: ViewContainerRef }) private widgetContainer: ViewContainerRef; constructor( private componentFactory: ComponentFactoryResolver, private jsf: JsonSchemaFormService ) { } ngOnInit() { this.updateComponent(); } ngOnChanges() { this.updateComponent(); } private updateComponent() { if (!this.newComponent && this.jsf.framework) { this.newComponent = this.widgetContainer.createComponent( this.componentFactory.resolveComponentFactory(this.jsf.framework) ); } if (this.newComponent) { for (let input of ['formID', 'layoutNode', 'layoutIndex', 'dataIndex']) { this.newComponent.instance[input] = this[input]; } } } }