我有一个包含许多简单Angular模板的页面。
<ng-template>
<my-component></my-component>
</ng-template>
当用户调整页面大小时,某些项目将以不同的顺序重新排列(响应式设计)。显然,我不希望这种情况发生时内容消失,所以我分离了视图。
ViewContainerRef.createEmbeddedView()
(到自定义指令中)将模板添加到页面中viewContainerRef.detach()
从页面上分离viewContainerRef.insert(viewRef)
问题是我需要告诉组件它已重新连接。特定的原因是它们包含需要触发play()
的视频,但这可能是由于其他许多原因。
问题是我不知道如何将组件与ViewRef / ViewContainer关联。
1)您无法将ViewRef
注入到@Component
中,因此组件不知道谁拥有它
2)事件ngAfterViewInit
仅在最初创建组件时触发-而不是在“重新连接”时触发。
2)最初创建嵌入式视图时,我可以引用该组件,但是它包含在私有字段_view
中。除非必须,否则我真的不想访问它。
是否有任何方法可以通知组件“已重新连接”?或与此等效的其他事件(可能与更改检测器有关)。