Angular中的ng-component是什么?

Sim*_*ver 1 angular ng-container

在angular中有两个非常相似的命名指令(或属性)

ng-componentng-container

如果您放ng-component而不用,ng-container则会出现各种奇怪的行为,例如自动插入<router-outlet>

我经常想知道ng-component用户代码中实际上有一个目的。

这是遗产吗?只是内部的吗?它可以解决任何问题吗?

Sim*_*ver 8

不确定这是否有益(或者甚至是有意为之),但事实证明,如果您不指定选择器名称,那么您的组件将ng-component在 HTML 中的标签内呈现。

@Component({ selector: '' })
Run Code Online (Sandbox Code Playgroud)


And*_*bie 5

角路由器使用路由器插座指令来渲染已导航到的组件。除非指定了特定的路由器出口指令,否则Angular会自动将路由组件放置在<ng-component>元素中(即默认路由器出口指令)。通常,您不直接使用此指令。您可以使用<router-outlet>元素来调用它。换句话说,ng-component如果未提供其他指令,则是注入元素的默认标签名称。

是的,它通常在内部使用。如前所述这里

您可以将样式附加到“ ng-component”选择器。但是,鉴于父组件可能包含多个路由器出口元素(用于命名和未命名视图)的事实,提供唯一的本地句柄将使CSS选择器更加直观。