cdkPortal 与 ngTemplateOutlet 有何不同

How is cdkPortal different from ngTemplateOutlet

为什么要在 Angular 中使用 cdkPortal over the built-in directives ngTemplateOutlet and ngComponentOutlet。它们不是都提供相同的功能吗? CDK 门户中是否有内置指令未附带的特定功能?

如果您查看 cdkPortal docs 中的第一个示例,您会注意到一个大 advantage/commodity:

cdkPortalOutlet 通过允许开发人员统一 ngTemplateOutletngComponentOutlet 的功能。将 templatescomponents 动态嵌入到视图中。

此外,ComponentPortal 允许动态传递 Injector 实例,这在您需要更好地控制 to-be-embedded 组件的依赖项解析的情况下会变得很方便。