更新:
正确的问题可能是:“我如何实现自己的版本,ng-container
因此可以使用“
”代替“
”。
我正在Angular 4中开发一个新应用程序。我想使用包装器组件构建整个应用程序,以便在需要时可以换出实际组件。这对于简单的控件很容易工作,但对于我们想要分解为单独的组件的复杂控件则不行。最好的示例是选项卡,因为需求相当稳定:带有标签和我们显示/隐藏的内容面板的选项卡列表。
ng-bootstrap可能会使用以下内容:
... ...
我们可能还有其他类似的组件:
- Tab 1
.........
而不是此时将我的应用绑定到特定的实现,我想定义自己的标签包装器,并在各处使用它,如下所示:
... ...
然后,如果我需要更改标签的工作方式,那么它会发生在一个地方。但是,如果我们使用包装器组件,则HTML会被宿主元素标签与所需标签交织在一起污染,这显然使事情变得混乱,例如
- Tab 1
...... ...
我的猜测是,这就是为什么许多人问如何解开/删除Angular组件中的宿主元素的原因-这将使此操作变得非常简单。
通常的答案是改用属性选择器,例如:
删除angular2组件的选择器标签
如何从HTML中删除/替换angular2组件的选择器标签
但是,这意味着我们需要在使用站点上了解标签结构,这显然破坏了使用命名良好的包装器标签的整个目的。
因此,最后,我应该怎么做?是否可能由于性能原因而无法使用?我已经开始研究Renderer2,但是还没有找到一种明显的方式来做我想做的事,并且我想避免非角度的DOM黑客。