2016-11-29 1 views
2

에 ngIf 인 요소 내 HTML입니다. console.log 주위에 setTimeout을 추가하면 작동하지만 해킹으로 인해 여러 이벤트가 진행될 때 엉망이됩니다. 내 말은, 템플릿의 ngIf이 업데이트되기 전에 getElementById이 실행된다는 것입니다. console.log을 실행할 때 템플릿이 업데이트되었는지 어떻게 알 수 있습니까?Angular2 Selectioning 그것은 여기

답변

5

변경 감지를 명시 적으로 호출 한 다음 Angular는 DOM을 즉시 업데이트합니다.

constructor(private cdRef:ChangeDetectorRef) {} 

isDisplayed: boolean = false 
blah() { 
    this.isDisplayed = true; 
    this.cdRef.detectChanges(); 
    console.log(document.getElementById('foo')); 
} 
+0

건배! 나는 그것에 대해 실제로 생각했지만 어떤 이유로 그것을 시도하지 않았다. – Scipion