我似乎无法弄清楚如何使图表起作用。我已经准备好了数据,但是每次我添加标签(例如labelDate)时,它在记录日志时只会给我一个未定义的变量。

    ngOnInit(): void {
    let labelDate;
    this._estimateService.getEstimates()
        .subscribe(estimateData => {
            const key = 'data';
            const groupedEstimates = groupBy(estimateData[key], 'estimate_date');
            // console.log(groupedEstimateData);

            const groupedEstimatesFiltered = omit(groupedEstimates, 'null');

            Object.entries(groupedEstimatesFiltered)
                .map(([date, estimatedData]) => {
                    labelDate = moment(date).format('DD MMM');   // Change it here
                    console.log(labelDate, estimatedData.length + ' - this is the first log');
                });
        });


    if (!this.data) {
        const color = Chart.helpers.color;
        this.data = {
            labels: [labelDate], // Doesnt work - logs as undefined
            datasets: [
                {
                    data: [estimateData.length] // Same as above
                },


数据集日志如下所示:

最佳答案

您的if块可能在订阅的next完成之前执行。为了避免这种情况,您可以调用observable的toPromise将其更改为promise,然后等待它,或者将if块移到订阅的next底部,以确保没有争夺。

09-17 23:22