Javascript ng bootstarp-在组件中应用OnPush ChangeDetection策略时,日期选择器选择错误的日期

Javascript ng bootstarp-在组件中应用OnPush ChangeDetection策略时,日期选择器选择错误的日期,javascript,angular,datepicker,ng-bootstrap,angular-changedetection,Javascript,Angular,Datepicker,Ng Bootstrap,Angular Changedetection,当我不在组件中应用ChangeDetectionStrategy.OnPush时,工作正常。但当我在组件中应用ChangeDetectionStrategy.OnPush和detach在ngAfterViewInit中进行更改时,它开始(有时)选择错误的日期 我理解,datepickermodal无法将更改应用于选择,因为我已将所有更改从组件中分离。我需要一个ng引导回调,当用户在datepicker模式中更改操作时(如更改年份、月份、通过箭头导航月份),我可以在该回调中应用detectChan

当我不在组件中应用
ChangeDetectionStrategy.OnPush
时,工作正常。但当我在组件中应用
ChangeDetectionStrategy.OnPush
detach
ngAfterViewInit
中进行更改时,它开始(有时)选择错误的日期

我理解,
datepicker
modal无法将更改应用于选择,因为我已将所有更改从组件中分离。我需要一个
ng引导
回调,当用户在
datepicker
模式中更改操作时(如更改年份、月份、通过箭头导航月份),我可以在该回调中应用
detectChanges()


以下是

中的代码,您已经添加了一个事件,该事件在日期更改时调用,在该函数中应用检测更改

<input class="form-control" placeholder="yyyy-mm-dd" name="fromdp"
    [(ngModel)]="fromDate" (dateSelect)="triggerFromDateFilter($event)"
    ngbDatepicker #fromdate="ngbDatepicker">

triggerFromDateFilter(evt) {
 console.log(evt)
 this.changeDetector.detectChanges();
}

triggerToDateFilter(evt) {
 console.log(evt);
 this.changeDetector.detectChanges();
}

triggerFromDateFilter(evt){
控制台日志(evt)
this.changeDetector.detectChanges();
}
triggerToDateFilter(evt){
控制台日志(evt);
this.changeDetector.detectChanges();
}

它不起作用。我刚刚在中更新了代码stackblitz@user3384985它可以工作。单击“箭头导航”时会看到这一点。它不工作。此外,有时当您更改月份或年份时,它也不起作用。@user3384985它不起作用,因为只有当您从日期选择器(日历)中选择日期时才会触发
dateSelect
事件,当用户使用键盘或鼠标选择日期时会触发
select
事件,谢谢@Sameer。我会检查它,让你知道它是如何工作的。