首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >cal-HeatMap发布来自REST服务的数据

cal-HeatMap发布来自REST服务的数据
EN

Stack Overflow用户
提问于 2016-04-03 14:04:07
回答 1查看 151关注 0票数 0

我在玩,并得到了一些静态json数据运行的例子。现在,我希望使用REST服务动态加载json数据。不幸的是,当我使用REST服务中的数据时,这并不像预期的那样工作。

这是cal-HeatMap (不工作的RESTful版本)的代码:

代码语言:javascript
复制
var heatData = dojo.xhr.get({
    url:"http://localhost:8080/webapp/xfull2.nsf/services.xsp/heatdata",
    handleAs:"json"
});

var cal = new CalHeatMap();
cal.init(
{
    itemSelector:"#cal-heatmap",
    range: 10,
    start: new Date(2016, 3,4,1),
    data: heatData
}
);

REST调用似乎会触发并返回一个JSON结果:

代码语言:javascript
复制
{
    "1459742400":1,
    "1459749600":1,
    "1459753200":1,
    "1459756800":1,
    "1459767600":1
}

在浏览器控制台上,我看到了以下错误: TypeError: a是未定义的cal-hea.min.js(第8行,列30282) (在cal-heatmap.min.js中)

我将REST调用中的JSON保存为.JSON文件,并使用该文件测试cal-HeatMap。在这种情况下,它正常工作。这是我的代码的静态版本:

代码语言:javascript
复制
var cal = new CalHeatMap();
cal.init(
{
    itemSelector:"#cal-heatmap",
    range: 10,
    start: new Date(2016, 3,4,1),
    data: "js/cal-heatmap/sample-json/testdata.json"
}
);

testdata.json文件如下所示(与上面相同):

代码语言:javascript
复制
{
    "1459742400":1,
    "1459749600":1,
    "1459753200":1,
    "1459756800":1,
    "1459767600":1
}

结果如下(这是可以的):

我在这里错过了什么?任何帮助或帮助都是非常感谢的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-04 05:37:38

嗯,我终于发现了我的代码中的问题--这个问题的答案是相当明显的。当我在xhr.get中使用异步REST调用时,我必须在回调中创建HeatMap对象。否则,在创建HeatMap对象时,数据还不可用。

正确的代码如下所示:

代码语言:javascript
复制
var heatData = dojo.xhr.get({
    url:"http://localhost:8080/webapp/xfull2.nsf/services.xsp/heatdata",
    handleAs:"json",
    load: function(data) {
        var cal = new CalHeatMap();
        cal.init({
                itemSelector:"#cal-heatmap",
                range: 10,
                start: new Date(2016, 3,4,1),
                data: data
                });
    }
})
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36386375

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档