javascript - 在 Chart.js 中使用准备好的数据集

标签 javascript angular typescript dataset chart.js

我似乎不知道如何让我的图表发挥作用。我已经准备好了数据,但是每次添加标签(例如(labelDate))时,它只会在记录时给我一个 undefined variable 。

    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 block 可能会在订阅的 next 完成之前执行。为了避免这种情况,你可以调用 observable 的 toPromise 将其更改为 Promise 并等待它,或者将 if block 移动到订阅的 next 底部,这样你就可以确保你不会在那里举行比赛。

关于javascript - 在 Chart.js 中使用准备好的数据集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59751252/

相关文章:

reactjs - 如何禁用 *.test.* 文件中的所有类型检查(包括导入的组件)

javascript - 用类声明一个变量

不带年份的 JavaScript 倒计时

javascript - 如何通过 $.getJSON 访问二级 JSON 对象

javascript - Angular 2 - 如何将(单击)事件添加到动态添加的 div

javascript - 未调用可观察结果构造函数

javascript - 无限期地循环 promise 直到被拒绝

javascript - 递归地重新组合分割的键/值对

ios - 定义表单组时忽略 NativeScript RadDataForm Angular CSS 样式

css - 如何从同一模式内的选择下拉列表中选择选项时设置模式的边距