2017-06-18 16 views
0

我的app.component.html包含這些代碼以顯示滑塊。如何在* ngIf呈現後調用javascript函數

<div class="slider-pro" id="slider" *ngIf="router.url == '/home'"> 
    <script type='text/javascript'> 
     initSlider(); 
    </script> 
    ... 
</div> 

但似乎angular2框架跳過我的javascript行。我的問題是如何在* ngIf呈現DOM元素後調用javascript函數。我試過在ngAfterViewInit()中調用這個函數,但它不起作用。我需要運行這個函數initSlider()來添加onChange事件。

回答

1

在ngAfterViewChecked中調用該函數。每次檢查組件視圖後都會調用它。

class MyComponent implements AfterViewChecked { 
    ngAfterViewChecked() { 
     //TODO - invoke here 
    } 
} 
+0

感謝您的建議,但如果我這樣做,我的JavaScript將執行n次。 on-change或click事件也會執行n次。另外,我有我自己的解決方案。謝謝 –