【发布时间】:2019-05-02 18:36:18
【问题描述】:
如果我有一个自定义指令ParentDirective 和自定义组件ChildComponent 安排如下:
<div appParent>
<app-child></app-child>
</div>
...那么我可以在指令中使用@ContentChild 来引用组件:
@ContentChild(ChildComponent) child: ChildComponent;
请参阅this StackBlitz 这是有效的。 (它会登录到控制台以显示 child 成员已设置)。
但是,如果我将 appParent 更改为 structural 指令,则永远不会设置 child 成员。
<div *appParent>
<app-child></app-child>
</div>
不能将@ContentChild 与结构指令一起使用吗?
【问题讨论】:
-
我在移动设备上,所以无法测试,但它可以与 ViewChild 一起使用吗?
-
@IngoBürk:不。你会期待吗?据我了解,
@ViewChild允许直接在组件视图中访问组件,而不是访问其中呈现的内容。 -
我在想,这可能是由于结构指令本身去糖化到模板中的方式,其中孩子对我来说更像是一个视图孩子而不是内容孩子。但似乎你现在已经得到了答案。
标签: angular angular-directive angular-components