@chatterton/angular2-schema-form
Version:
Angular2 Schema Form (DISCLAIMER: it is not related to angular-schema-form)
28 lines (21 loc) • 717 B
text/typescript
import {
ViewContainerRef,
ComponentRef,
ComponentFactoryResolver,
Injectable
} from '@angular/core';
import { WidgetRegistry } from './widgetregistry';
()
export class WidgetFactory {
private resolver: ComponentFactoryResolver;
private registry: WidgetRegistry;
constructor(registry: WidgetRegistry, resolver: ComponentFactoryResolver) {
this.registry = registry;
this.resolver = resolver;
}
createWidget(container: ViewContainerRef, type: string): ComponentRef<any> {
let componentClass = this.registry.getWidgetType(type);
let componentFactory = this.resolver.resolveComponentFactory(componentClass);
return container.createComponent(componentFactory);
}
}