检测何时将Angular组件添加到新的ViewContainerRef

时间:2018-07-26 07:30:36

标签: angular

我有一个包含许多简单Angular模板的页面。

<ng-template>
   <my-component></my-component>
</ng-template>

当用户调整页面大小时,某些项目将以不同的顺序重新排列(响应式设计)。显然,我不希望这种情况发生时内容消失,所以我分离了视图。

  1. 最初,我使用ViewContainerRef.createEmbeddedView()(到自定义指令中)将模板添加到页面中
  2. 用户调整页面大小时,他们使用viewContainerRef.detach()从页面上分离
  3. 当再次使它们可见时,它们将重新附加viewContainerRef.insert(viewRef)

问题是我需要告诉组件它已重新连接。特定的原因是它们包含需要触发play()的视频,但这可能是由于其他许多原因。

问题是我不知道如何将组件与ViewRef / ViewContainer关联。

1)您无法将ViewRef注入到@Component中,因此组件不知道谁拥有它 2)事件ngAfterViewInit仅在最初创建组件时触发-而不是在“重新连接”时触发。 2)最初创建嵌入式视图时,我可以引用该组件,但是它包含在私有字段_view中。除非必须,否则我真的不想访问它。

enter image description here

是否有任何方法可以通知组件“已重新连接”?或与此等效的其他事件(可能与更改检测器有关)。

0 个答案:

没有答案