我曾与加载和实例化 Angular 模块。 (不带路由器)
但现在,在 Angular 13 中,我发现实例化 NgModule 的常用编译器工具已被弃用:
这是我加载模块的常用代码
const moduleFactory = await this.compiler.compileModuleAsync(module);
const moduleRef = moduleFactory.create(this.injector);
const componentFactory = moduleRef.instance.resolveComponent(selector);
看得更深入
ViewContainerRef 现在包含工厂的 V13 更改使动态组件更容易了 1 步。然而,关于ViewContainerRef.createComponent()该文件指出:
已弃用的 Angular 不再需要组件工厂
动态创建组件。使用不同的签名
createComponent 方法,允许直接传递 Component 类。
那么 Angular 13+ 中这些任务的新方向是什么?
您可以利用新的创建Ng模块方法并替换这些步骤:
const moduleFactory = await this.compiler.compileModuleAsync(module);
const moduleRef = moduleFactory.create(this.injector);
with
const moduleRef = createNgModule(module, this.injector);
您还可以在 Angular 文档中阅读有关所有弃用和可能替换的信息https://angular.io/guide/deprecations
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)