2016-10-01 4 views
0

子コンポーネントを持つ親コンポーネントがあり、子コンポーネントはNgForを使用して設定されています。親はプロパティchildIsVisible = falseを定義し、その子に*ngIf="childIsVisible"をバインドするので、最初は子は表示されません。NgIfを適用して子コンポーネントの幅と高さを取得します。

後でchildIsVisibletrueにフリップして子コンポーネントが表示され、その子の幅に基づいて子を配置したいと考えています。

私の問題は、可視性を反転させる親メソッド内では、まだ表示されていないため、子の幅を取得できないということです。私が望むのは、子コンポーネントが表示されたら、可視性をトグルする方法です。子コンポーネントがその幅を取得し、それに応じて配置されます。

私はAfterContentCheckedを使用して見ましたが、これはかなり恒常的に呼ばれているように、少し重いようです。

これが理にかなっていると思いますが、これにアプローチするさまざまな方法の考えはすばらしいでしょう。

乾杯

+0

もしあなたがプランナーに何かを見せることができたら。 – micronyks

+0

私はplnkrの周りに頭を上げることはできません。 NG2テンプレートを使用して何かを設定しようとしましたが、私が追加するものはそれを破るようです。私は何かをデバッグする方法を考えることができません。それでも別の亀裂がありますが、私はその無意味なことを例のない説明にしようとしています。 – popClingwrap

答えて

0

たぶん[hidden]="!childIsVisible"は、問題を解決することができます。それはchildIsVisibletrueに切り替わるまで、DOMで表示され、表示されません。あなたの結果を教えてください!

+1

これは仕事ですが、文字通りちょうど[一部のブログ記事](http://angularjs.blogspot.se/2016/ 04/5-rookie-mistakes-to-avoid-with-angular.html)は悪い考えで、代わりに 'ngIf'を使用すると主張しました。 – popClingwrap

+0

ちょうど速い解決策。大したことではありませんが、あなたは正しいです。 'ngIf'はより良い練習です、私はそれがちょうどあなたの仕事のためのケースかもしれないと思う。よりエレガントなものを見つけたらお知らせください! – Mikki

+0

これは完全に有効な回答であり、私はこの段階での迅速な修正についてすべてを行っています。私は後で詳しく調べるためのメモを付けて、それと一緒に行くつもりです。あなたの助けに乾杯 – popClingwrap

関連する問題