【已解决】Highcharts 报表 怎么与node交互呢?
发布于 10 年前 作者 heixiaoshan 5197 次浏览 最后一次编辑是 8 年前

对于新人来说,很蛋疼的问题。Highcharts怎么跟后台的交互数据,或者说Highcharts怎么得到数据。 后台传前台ejs模板中是用foreach,而前台如果是JS,该怎么整呢?用Ajax? 哪位大神有相关的案例或者指点指点一下

9 回复

如果使用EJS模板的话,可以将数据返回的页面中,然后在HC中直接调用就可以了 如果使用Ajax的话,可以用node写数据服务,返回的就是HC需要的json 然后在HC中使用Ajax请求服务,将数据填到HC的series下

ejs模板,hc调用,怎么个调用法,有没有相关实例呢?

直接在jquery的ajax的回调里面写就行了,

转格式好麻烦 而且我是用get请求。 也就是一进页面就价值

@heixiaoshan 就和在ejs里面调用其他传递的一样

node

res.render("view", {
    series: [100, 200, 300, 400]
});

ejs

<script>
$(function () {
    $('#container').highcharts({
        // ... 图形配置省略
        series: [{
            name: "Demo",
            data: <%= series %>
        }]
    });
});
<script>

ajax交互方式

前端 $(document).ready(function(){ var getjson = $.ajax({url:"/api/sales-base-big",async:false}).responseText; $(".alovecakechart").highcharts({ chart: { type: ‘column’ }, title: { text: ‘ALOVE+ 即时销售统计’ }, xAxis: { categories: JSON.parse(getjson)[‘main’] }, yAxis: { title: { text: ‘销量’ } }, series: [{ name: ‘销售总量’, data: JSON.parse(getjson)[‘val’] }, { name: ‘有效量(产生价值)’, data: JSON.parse(getjson)[‘val1’] }] }); })

后端 res.send({“main”:arr,“val”:val,“val1”:val1})

多谢,已经解决。

@kenticny 按照你的思路已经解决。谢谢。

@heixiaoshan 不过个人觉得highcharts交互还是应该走Ajax好一点~

回到顶部