2017-07-20 81 views
0

即時通訊在我的角2應用程序中使用引導日期匹配(http://bootstrap-datepicker.readthedocs.io/en/latest/index.html),並有一些初始化的麻煩。使用角2自舉日期選擇器初始化

在我的組件作品以下,但不漂亮

ngAfterViewInit(): void { 
    setTimeout(function() { 
     $('.date').each(function() { 
     console.log($(this)); 
     $(this).datepicker({ 
      format: 'dd.mm.yyyy', 
      autoclose: true, 
      calendarWeeks: true, 
      language: 'de-DE', 
      todayHighlight: true 
     }); 
     }); 
    }, 1000) 
    } 

有沒有1秒髒超時的方式來得到這個工作?如果我沒有超時,jQuery選擇器不會返回任何內容,並且控制檯中沒有輸出。

+0

您是否嘗試過的生命週期方法'ngAfterViewChecked'的機會呢? – aug

+0

是的。它的工作原理,但ngAfterViewChecked經常被調用,所以我最終做了很多不需要的初始化。如果我只在ngAfterViewChecked的第一次調用時初始化,那麼jQuery選擇器仍然沒有找到DOM元素 – user3740359

+0

實際上,嘗試使用'$(document).ready()'在'ngAfterViewInit'中嘗試setTimeout。看到[這個問題](https://stackoverflow.com/questions/35728731/how-to-run-a-jquery-function-in-angular-2-after-every-component-finish-loading) – aug

回答

0

問題在於datepicker在* ngIf指令內。

解決方案是使用@ViewChildren與QueryList和初始化一旦querylist改變(訂閱改變事件)

相關問題