我想创建除非包装在另一个更高级别组件中否则无法渲染的角度组件。 为了更好地理解这一点,这里有一个例子(示例来自选项卡angular material
结构(:
<mat-tab-group>
<mat-tab></mat-tab>
</mat-tab-group>
我想创建相同的结构,其中mat-tab
将是我的组件,如果没有mat-tab-group
包装组件就无法呈现。
我正在浏览角度文档,但找不到相关信息。 有人可以帮忙吗?
谢谢!
感谢@Syed正是我正在寻找的。
角度 2 - 将组件限制为特定的父组件
谢谢!
您可以使用Optional 和 Host 来获取 "mat-tab-group">
在你的孩子
get hasParent()
{
return this.hello!=null
}
constructor(@Optional() @Host() private hello:HelloComponent){}
您可以在child.component.ts中使用
<ng-container *ngIf="hasParent">
....
</ng-container>
如果您公开问候,您可以在 .html(*( 中使用
<h1 *ngIf="hasParent">Hello!, parent's name is {{hello.name}}</h1>
(*(如果是私有的,您可以使用this.hello.oneProperty
或this.hello.oneFunction()
访问子项中的所有公共属性 查看简单的堆栈闪电战