
This commit makes the static flag on @ViewChild and @ContentChild required. BREAKING CHANGE: In Angular version 8, it's required that all @ViewChild and @ContentChild queries have a 'static' flag specifying whether the query is 'static' or 'dynamic'. The compiler previously sorted queries automatically, but in 8.0 developers are required to explicitly specify which behavior is wanted. This is a temporary requirement as part of a migration; see https://angular.io/guide/static-query-migration for more details. @ViewChildren and @ContentChildren queries are always dynamic, and so are unaffected. PR Close #30639
26 lines
729 B
TypeScript
26 lines
729 B
TypeScript
import {AfterViewInit, Compiler, Component, ViewChild, ViewContainerRef} from '@angular/core';
|
|
|
|
declare var System: any;
|
|
|
|
@Component({
|
|
selector: 'app-root',
|
|
template: `
|
|
<h1>Hello world!</h1>
|
|
<div #vc></div>
|
|
`,
|
|
})
|
|
export class AppComponent implements AfterViewInit {
|
|
@ViewChild('vc', {read: ViewContainerRef, static: false}) container: ViewContainerRef;
|
|
|
|
constructor(private compiler: Compiler) {}
|
|
|
|
ngAfterViewInit() {
|
|
System.import('./dist/lazy.bundle.js').then((module: any) => {
|
|
this.compiler.compileModuleAndAllComponentsAsync(module.LazyModule).then((compiled) => {
|
|
const factory = compiled.componentFactories[0];
|
|
this.container.createComponent(factory);
|
|
});
|
|
});
|
|
}
|
|
}
|