Angular / Angular basics
Difference between createEmbeddedView and createComponent in Angular.
createEmbeddedView is used to create a view using TemplateRef. TemplateRef is created by Angular compiler when it encounters ng-template tag in your component HTML. The view created using this method is called an embedded view.
createComponent is used to create a view using ComponentFactory. It is created by Angular compiler when you specify a component in the bootstrap property of the module so that compiler generates a factory for it. The view created using this method is called a host view.
import { Component, ViewContainerRef, ComponentFactoryResolver, NgZone, VERSION, ViewChild } from '@angular/core'; @Component({ selector: 'hello-world', template: `<h1>Hello world!</h1>`, styles: [``] }) export class HelloWorldComponent {} @Component({ selector: 'my-app', template: ` <ng-container #hw></ng-container> `, styles: [''] }) export class AppComponent { @ViewChild('hw', {read:ViewContainerRef}) vc: ViewContainerRef; constructor(private resolver: ComponentFactoryResolver) {} ngOnInit() { const factory = this.resolver.resolveComponentFactory(HelloWorldComponent); this.vc.createComponent(factory); } }
More Related questions...