Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery angular 2引导数据选择器初始化_Jquery_Twitter Bootstrap_Angular_Typescript_Datepicker - Fatal编程技术网

Jquery angular 2引导数据选择器初始化

Jquery angular 2引导数据选择器初始化,jquery,twitter-bootstrap,angular,typescript,datepicker,Jquery,Twitter Bootstrap,Angular,Typescript,Datepicker,我在angular 2应用程序中使用bootstrap datepiker(),初始化时遇到一些问题 在我的组件中使用下面的方法是可行的,但不太好 ngAfterViewInit(): void { setTimeout(function() { $('.date').each(function() { console.log($(this)); $(this).datepicker({ format: 'dd.mm.yyy

我在angular 2应用程序中使用bootstrap datepiker(),初始化时遇到一些问题

在我的组件中使用下面的方法是可行的,但不太好

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选择器不会返回任何内容,控制台中也没有输出。

问题在于日期选择器位于*ngIf指令内


解决方案是将@ViewChildren与QueryList一起使用,并在QueryList更改后初始化(订阅更改事件)

您是否偶然尝试了生命周期方法
nAfterViewChecked
?是的。这是可行的,但是ngAfterViewChecked经常被调用,所以我最终进行了很多不必要的初始化。如果我只在第一次调用ngAfterViewChecked时初始化,jQuery选择器似乎仍然找不到DOM元素。实际上,请尝试使用
$(document).ready()在
ngAfterViewInit
中执行setTimeout,而不是执行setTimeout。不幸的是,这不起作用,但这是个好主意。你还能显示你的html吗?