2017-04-03 54 views
0

这里首先内 内部的部件的方法是 Plunkr 呼叫这是它的父组件

从本质上讲,我有是动态的一个选项卡控制。将有任意数量的选项卡,其中每个选项卡将包含一个从此“延迟加载”组件继承的组件。我希望实现的功能是,当用户点击该选项卡时,它将从该选项卡中包含的任何组件内调用“loadData”。

我试图用@ViewChild或@ContentChild访问子组件,但没有任何我尝试似乎工作。

标签的模板是:

<div [hidden]="!active" class="pane"> 
    <ng-content></ng-content> 
</div> 

而且在标签组件内的财产“活跃”的制定者,我想调用的任何组件内举行的.loadData()方法元件。这是可以实现的吗?

+0

https://plnkr.co/edit/YA3WFkE1L3WJNyjspeWr?p=preview – yurzui

+0

@yurzui这非常有帮助,如果你想提交一个答案(有一个小的描述),我会将它标记为解决方案! :) 谢谢! –

回答

0

它为我的作品与

ngAfterContentInit() { 
    if(this.component) { 
     this.component.loadData(); 
    } 
    } 

    @ContentChild(DelayLoadComponent) component: DelayLoadComponent; 

,但它确实不懒负载的组件。

Plunker example

也许你想添加一个*ngIf,只有将组件添加到DOM中,当标签被激活。

+0

不幸的是我期待懒加载组件! –

+0

但问题不是由延迟加载引起的。您的应用程序不会延迟加载组件。 –

+0

但这就是我想通过问这个问题来实现的吗?我知道它不会延迟加载组件 - 这就是为什么我在这里! :) –