novo-elements
Version:
Bullhorn's NOVO Element Repository for Angular 2
22 lines (18 loc) • 1.01 kB
text/typescript
// NG2
import { ComponentFactoryResolver, ComponentRef, Injectable, Injector, ReflectiveInjector, ViewContainerRef, ResolvedReflectiveProvider } from '@angular/core';
()
export class ComponentUtils {
componentFactoryResolver: ComponentFactoryResolver;
constructor(componentFactoryResolver: ComponentFactoryResolver) {
this.componentFactoryResolver = componentFactoryResolver;
}
appendNextToLocation(ComponentClass, location: ViewContainerRef, providers?: ResolvedReflectiveProvider[]): ComponentRef<any> {
let componentFactory = this.componentFactoryResolver.resolveComponentFactory(ComponentClass);
let parentInjector = location.parentInjector;
let childInjector: Injector = parentInjector;
if (providers && providers.length > 0) {
childInjector = ReflectiveInjector.fromResolvedProviders(providers, parentInjector);
}
return location.createComponent(componentFactory, location.length, childInjector);
}
}