引言有时候需要根据URL来渲染不同组件,我所指的是在同一个URL地址中根据参数的变化显示不同的组件;这是利用Angular动态加载组件完成的,同时也会设法让这部分动态组件也支持AOT。动态加载组件下面以一个Step组件为示例,完成一个3个步骤的示例展示,并且可以通过URLuser?step=step-one的变化显示第N个步骤的内容。1、resolveComponentFactory首先,还是需要先创建动态加载组件模块。import { Component, Input, ViewContainerRef, ComponentFactoryResolver, OnDestroy, ComponentRef } from '@angular/core';
@Component({
selector: 'step',
template: ``
})
export class Step implements OnDestroy {
private currentComponent: ComponentRef;
constructor(private vcr: ViewContainerRef, private cfr: ComponentFactoryResolver) {}
@Input() set data(data: { component: any, in
...
继续阅读
(7)