2016-10-01 4 views
0

NgFor을 사용하여 자체 채워지는 하위 구성 요소가 있습니다. 부모는 속성 childIsVisible = false을 정의하고 자식을 *ngIf="childIsVisible"으로 바인딩하므로 처음에는 자식이 표시되지 않습니다.NgIf가 적용된 하위 구성 요소의 너비와 높이 가져 오기

나중에 childIsVisible에서 true으로 뒤집어서 하위 구성 요소가 나타나고 그 너비를 기준으로 위치를 지정하려고합니다.

내 문제는 가시성을 뒤집는 부모 메서드 내에서 아직 표시되지 않기 때문에 자식의 너비를 얻을 수 없다는 것입니다. 내가 원하는 것은 그때 가시성을 토글하는 몇 가지 방법입니다. 일단 자식 구성 요소가 표시되면 너비를 가져 와서 적절하게 배치합니다.

나는 AfterContentChecked을 사용하여 보았습니다. 그러나 이것은 꽤 많이 끊임없이 불려지므로 조금 무거워 보입니다.

희망이 있으시면이 방법에 대한 의견을 보내주세요.

건배

+0

무언가를 무언가로 보여줄 수 있다면. – micronyks

+0

나는 plnkr 주위에 내 머리를 얻을 수 없다. NG2 템플릿을 사용하여 무언가를 설정하려고 시도했지만 추가 한 사항은 문제가있는 것으로 보이며 작성한 모든 것을 디버깅하는 방법을 찾을 수 없습니다. 그래도 또 다른 갈라진 틈이있을 테니, 예제없이이 물건을 묘사하려고 꽤 무의미한 것을 알고있다. – popClingwrap

답변

0

어쩌면 [hidden]="!childIsVisible"이 문제를 해결할 수 있습니다. DOM에 표시되며 childIsVisibletrue으로 전환 될 때까지 보이지 않습니다. 그 결과를 알려주세요!

+1

글자 그대로 [일부 블로그 게시물]을 읽었지만 (http://angularjs.blogspot.se/2016/ 04/5-rookie-mistakes-to-avoid-with-angular.html)는 나쁜 생각이었고 대신'ngIf'를 사용했습니다. – popClingwrap

+0

그냥 빠른 해결책. 큰 문제는 아니지만 당신 말이 맞습니다. 'ngIf'는 더 나은 실천입니다. 제 생각에 그것은 당신의 업무에 해당 될 수 있다고 생각합니다. 좀 더 우아한 것을 발견하면 알려주세요! – Mikki

+0

그것은 전적으로 유효한 답변이며이 단계에서 빠른 수정에 관한 것입니다. 나는 나중에 더 자세히 조사 할 메모와 함께 그걸로 갈거야. 당신의 도움을위한 건배 – popClingwrap

관련 문제