【发布时间】:2017-12-27 09:15:49
【问题描述】:
我正在开发 Angular 4 应用程序。我已经安装了 angular - 4.0.3、bootstrap - 3.3.7、ng-bootstrap - 1.0.0-alpha.15、@progress/kendo-angular-dateinputs - ^1.0.3。
我打开了 kendo-datepicker 内部的模态对话框。当我点击打开日期选择器图标时出现错误:
ExpressionChangedAfterItHasBeenCheckedError: Expression has changed after it was checked. Previous value: 'true'. Current value: 'false'.
我尝试添加
import { Component, OnInit, OnDestroy, AfterViewChecked, AfterContentChecked, ChangeDetectorRef } from '@angular/core';
import { NgbModal, NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';
import { FormGroup, FormBuilder, FormControl } from '@angular/forms';
@Component({
selector: "ac-task-modal",
templateUrl: "./app/core/modals/task-modal.component.html"
})
export class AddTaskModalComponent implements OnInit, OnDestroy, AfterViewChecked, AfterContentChecked {
fromDate = new Date();
dueDate? = new Date();
taskForm: FormGroup;
constructor(private ref: ChangeDetectorRef,
public activeModal: NgbActiveModal,
private modalService: NgbModal,
private readonly formBuilder: FormBuilder) {
}
ngOnInit() {
this.buildForm();
}
ngAfterViewChecked(): void {
this.ref.detectChanges();
}
ngAfterContentChecked(): void {
this.ref.detectChanges();
}
buildForm() {
this.taskForm =
this.formBuilder.group({
description: this.task.description,
note: "",
assignee: new FormControl()
});
}
ngOnDestroy() {
}
}
但这没有帮助。 当我不在模态对话框中插入 kendo-datepicker 时,它工作正常。
kendo-datepicker、ng-bootstrap 或 angular 的错误在哪里?我该如何解决?
重要说明我的项目中有 bootstrap v3 的主题,所以我无法将 ng-bootstrap 更新到最新版本,因为 bootstrap v4 的最新版本,如果我错了,请纠正我。
【问题讨论】:
-
你能发布你的整个 ts 文件代码吗?
-
@federicoscamuzzi 是的,当然,请看一下
-
嗯,问题与角度开发模式有关。它会仔细检查变量的变化……我认为它与你的 fromDate = new Date();截止日期? = 新日期();字段...导致它们的值从您声明它们时开始发生变化...您需要几秒钟的时间吗? ..或尝试调查他们
-
不,我不需要秒数,只需要日、月、年。很奇怪,因为它适用于简单页面而不是模式对话框。
-
试一试...尝试仅设置日期、月份和年份并进行测试
标签: angular twitter-bootstrap-3 ng-bootstrap kendo-datepicker