2016-10-01 89 views
0

我有一个使用NgFor填充自己的子组件的父组件。父母定义了一个属性childIsVisible = false并使用*ngIf="childIsVisible"将孩子绑定到它,因此最初不显示孩子。使用NgIf获取子组件的宽度和高度

稍后,我想翻转childIsVisibletrue,以便显示子组件,并根据它的宽度定位子组件。

我的问题是,在翻转可见性的父方法中,我无法获得孩子的宽度,因为它尚未显示。我想要的是一些切换可见性的方法,一旦显示子组件,获取其宽度并相应地定位它。

我曾看过使用AfterContentChecked,但这似乎有点沉重,因为它几乎被称为不断。

希望这是有道理的,任何想法用不同的方法来解决这个问题将是伟大的。

干杯

+0

如果你可以在笨拙的东西中展示一些东西。 – micronyks

+0

我无法在plnkr上找到我的头。试图设置使用NG2模板的东西,但我添加任何东西似乎打破它,我不能解决如何调试我写的东西。但它会有另一个裂缝,我知道它非常无意义地试图描述这个没有例子的东西 – popClingwrap

回答

0

也许[hidden]="!childIsVisible"能解决问题。它将以DOM呈现,直到childIsVisible将切换至true才会隐藏。让我知道你的结果!

+1

这是做这项工作,虽然我刚刚读完[一些博客文章](http://angularjs.blogspot.se/2016/ 04/5-rookie-errors-to-avoid-with-angular.html),声称这是一个坏主意,而是使用'ngIf'来代替。 – popClingwrap

+0

只是一个快速的解决方案。不是什么大不了的,但你是对的,先生。 'ngIf'是更好的练习,我认为你的任务可能就是这样。让我知道你是否会找到更优雅的东西! – Mikki

+0

这是一个完全有效的答案,我在这个阶段快速解决所有问题。我现在要和它一起写下一张笔记,以便稍后进行调查。欢呼你的帮助 – popClingwrap