在角度中有两个非常相似的命名指令(或属性(
ng-component
和ng-container
如果你放ng-component
而不是ng-container
你会得到各种奇怪的行为 - 比如自动插入<router-outlet>
。
我经常想知道用户代码中ng-component
是否真的有目的。
是遗留的东西吗?它只是内部的吗?它能解决任何问题吗?
Angular 路由器使用路由器出口指令呈现它们导航到的组件。除非指定了特定的路由器出口指令,否则 Angular 将自动将路由组件放置在<ng-component>
元素中(即默认路由器出口指令(。您通常不直接使用此指令。您可以使用<router-outlet>
元素调用它。换句话说,如果未给出另一个指令,则ng-component
是注入元素的默认标记名称。
所以是的,它通常在内部使用。如下所述:
您可以将样式附加到"ng-component"选择器;但是,给定 父组件可能包含多个路由器出口的事实 元素(用于命名和未命名视图(,提供唯一的本地 句柄将使CSS选择器更加直观。
不确定这是否有益(甚至是故意的(,但事实证明,如果您不指定选择器名称,那么您的组件将在 HTML 中的ng-component
标记中呈现。
@Component({ selector: '' })