首页 > 解决方案 > Angular 中的 ng-component 是什么?

问题描述

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

ng-componentng-container

如果你把ng-component而不是ng-container你会得到各种奇怪的行为 - 例如自动插入一个<router-outlet>.

我经常想知道ng-component用户代码中是否真的有目的。

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

标签: angularng-container

解决方案


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

所以是的,它通常在内部使用。如此处所述:

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


推荐阅读