2017-03-10 58 views
1

过去,我有一个结构:@ContentChildren返回空列表,如果内容通过2个部件

子组件模板(这是最简单的):

<div>Child</div> 

父组件模板:

<div><h1>Parent</h1> 
    <middle> 
     <ng-content></ng-content> 
    </middle> 
    </div> 

正如你可以看到我们有一个在中间多, 中间组件templtate:

<div> 
    <h1>Middle</h1> 
    <ng-content></ng-content> 
    </div> 

,我使用下一方法:

<parent> 
     <child>hi</child> 
     <child>there</child> 
    </parent> 

问题:我不能在中东部分获得的子组件ContentChildren?

应该angular2支持呢?如果不是,那为什么?

Plnkr Demo - 看到控制台输出

+1

你的问题是不明确 – Aravind

+0

我准备澄清,只是问问题。你也可以看演示,打开控制台,并检查出来放: 父组件 - 我得到2元的QueryList, 但对于中东 - 0,无论我期望看到相同的2个分量 – ilyabasiuk

+0

所以应该是什么数每个 ?? – Aravind

回答

1

有没有内容,孩子们在Middle,他们一直到最<ng-content>通过。

如果您通过Parent中的Child作为Middle的子项,则会在中间获得一个contentChild。

Plunker example

你可以使用选择在<ng-content select="...">来指定哪些元素应该被投射到<ng-content>

+0

但它看起来像一个正确的行为吗?关于它的文档中是否有任何信息? – ilyabasiuk

+0

是的。 ng-content只是传递。最后的结果。我不知道关于这方面的具体文档,只是从GitHub问题的讨论。 –

+0

您能否给我一些Github问题的链接,我可以在这里阅读更多关于它的内容? – ilyabasiuk