【问题标题】:PrimeNG Schedule throws ExpressionChangedAfterItHasBeenCheckedError when lazyloadingPrimeNG Schedule 在延迟加载时抛出 ExpressionChangedAfterItHasBeenCheckedError
【发布时间】:2018-04-20 17:09:51
【问题描述】:

目前我在延迟加载事件时遇到异常。我关注了PrimeNG doc

例外

AppComponent.html:4 ERROR Error: ExpressionChangedAfterItHasBeenCheckedError: Expression has changed after it was checked. Previous value: 'undefined'. Current value: '[object Object],[object Object],[object Object],[object Object],[object Object]'.
at viewDebugError (VM29065 core.umd.js:9794) [angular]

Plunkr

PrimeNG 5.2.3,角度 5.2.4

【问题讨论】:

    标签: angular fullcalendar primeng


    【解决方案1】:

    您可以使用ChangeDetectorRef 在您的组件中手动触发更改检测,以解决您的问题。

    constructor(private cdr: ChangeDetectorRef) {
    }
    

    并在添加事件后调用detectChanges 方法

    this.cdr.detectChanges();
    

    编辑

    为什么不在ngOnInit 方法中加载事件?

    HTML

    <p-schedule [events]="events"></p-schedule>
    

    TS

    ngOnInit() {
        this.events = [
                {
                    "title": "All Day Event",
                    "start": "2018-04-19"
                },
                {
                    "title": "Long Event",
                    "start": "2018-04-07",
                    "end": "2018-04-10"
                },
                {
                    "title": "Repeating Event",
                    "start": "2018-04-09T16:00:00"
                },
                {
                    "title": "Repeating Event",
                    "start": "2018-04-16T16:00:00"
                },
                {
                    "title": "Conference",
                    "start": "2018-04-11",
                    "end": "2018-04-13"
                }
            ];
      }
    

    Plunker

    【讨论】:

    • 感谢您的回答。但是我为什么要手动调用它呢?它不是文档的一部分。还是因为他们使用了一个承诺?
    • 还是因为他们使用了一个承诺?我想是的。
    • 我看到这个方法不能正常工作。每个事件显示 3 次。有什么线索吗?查看您的 Plunker
    • 谢谢,但这是没有延迟加载的初始设置。通过 onViewRender 加载事件时,我可以使用“event.view”的开始和结束变量来仅加载特定开始/结束日期的事件。使用 promise 而不是 observable 时,它​​似乎可以正常工作
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-21
    • 2019-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-20
    相关资源
    最近更新 更多