我正在编写一个列出一些用户并在单击用户时显示信息页面的应用程序。用户的类型不同(大约20种类型),每种用户类型的详细信息页面在布局和功能上都不同。

我有一个主要DetailsComponent和20个特定组件(Type1DetailsComponentType2DetailsComponent等),这些组件必须显示在主要DetailsComponent内。

我想到了两种方法来实现此目的:

  • NgSwitch中使用DetailsComponent选择特定组件
  • 使用ComponentFactoryResolverViewContainerRef创建所需的特定组件,并将其显示在DetailsComponent

  • 第一种方法要求在SpecificDetailsComponent中列出所有NgSwitch,从而降低了可伸缩性。

    第二种方法似乎更好,但有一些缺点:
  • 需要一个目标元素来放置动态创建的组件。新组件无法替换目标元素,但会放置在它之后。看起来很困惑。
  • 创建组件时,Angular不会自动设置
  • @Input和@Output。

  • 我可以做些什么来改进第二种方法吗?

    有没有更好的方法可以实现目标?

    最佳答案

    我相信target元素确实被替换了,但是无论如何,它只是一个错误的元素。我认为即使组件很复杂,CFR也会快50%。

    关于angular - NgSwitch或ComponentFactoryResolver?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40001864/

    10-13 05:42