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