javascript - Highcharts 系列格式问题(AngularJs)

标签 javascript angularjs asp.net-mvc highcharts

$scope.chartSeries= [{"name":"Tokyo","data":["0"," 0.9"," 0.5"," 0.5"," 0.2"," 0.5"," 0.2"," 0.5"," 2.3"," 1.3"," 1.9"," 0.6"]},{"name":"New York","data":["-0.2"," 0.8"," 5.7"," 11.3"," 17.0"," 22.0"," 24.8"," 24.1"," 20.1"," 14.1"," 8.6"," 2.5"]},{"name":"Berlin","data":["-0.9"," 0.6"," 3.5"," 8.4"," 13.5"," 17.0"," 18.6"," 17.9"," 14.3"," 9.0"," 3.9"," 1.0"]},{"name":"London","data":["3.9"," 4.2"," 5.7"," 8.5"," 11.9"," 15.2"," 17.0"," 16.6"," 14.2"," 10.3"," 6.6"," 4.8"]}]

当我使用 series: $scope.chartSeries 时,我的图表不会运行。

但是当我对它进行硬编码时,即

series: [{
            name: 'Tokyo',
            data: [7.0, 6.9, 9.5, 14.5, 18.4, 21.5, 25.2, 26.5, 23.3, 18.3, 13.9, 9.6]
        }, {
            name: 'London',
            data: [3.9, 4.2, 5.7, 8.5, 11.9, 15.2, 17.0, 16.6, 14.2, 10.3, 6.6, 4.8]
        }]

我的代码运行流畅。我缺少什么?我想使用 series: $scope.chartSeries

分配数据

 var chartSeriesArray=[];
   $http.get(url + "?GraphId="+$scope.graph.GraphId)
       .success(function (response) {
                   for (var i = 0; i < response.records.length; i++)
                   {
                       chartSeriesArray.push({
                           "name": response.records[i].name,
                           "data": response.records[i].data.split(",")
                       });
                   }

                   console.log(JSON.stringify(chartSeriesArray));

                //chartSeriesArray=[{"name":"Tokyo","data":["0"," 0.9"," 0.5"," 0.5"," 0.2"," 0.5"," 0.2"," 0.5"," 2.3"," 1.3"," 1.9"," 0.6"]},{"name":"New York","data":["-0.2"," 0.8"," 5.7"," 11.3"," 17.0"," 22.0"," 24.8"," 24.1"," 20.1"," 14.1"," 8.6"," 2.5"]},{"name":"Berlin","data":["-0.9"," 0.6"," 3.5"," 8.4"," 13.5"," 17.0"," 18.6"," 17.9"," 14.3"," 9.0"," 3.9"," 1.0"]},{"name":"London","data":["3.9"," 4.2"," 5.7"," 8.5"," 11.9"," 15.2"," 17.0"," 16.6"," 14.2"," 10.3"," 6.6"," 4.8"]}] 


                   $scope.chartSeries = chartSeriesArray;
          }

最佳答案

您正在以错误的格式分配数据。这应该可以解决问题:

 for (var i = 0; i < response.records.length; i++)
               {
                   var cityData = 
                   {
                       name:response.records[i].name,
                       data:response.records[i].data.map(Number)
                   }
                   chartSeriesArray.push(cityData );
               }

更新 也许问题在于您的数据是一个字符串数组,它应该是一个数字数组,因此您可能需要将字符串 s 映射到数字:response.records[i].data.map(Number)

关于javascript - Highcharts 系列格式问题(AngularJs),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32493680/

相关文章:

javascript - 如何使用 JS 或 CSS 将 TABLE 转为圆 Angular ?

javascript - 自动检查复选框列表

javascript - angularjs 和 mocha 测试 Uncaught TypeError : (window. beforeEach || window.setup) 不是函数

javascript - angularjs $routeProvider 路由在解析完成之前执行

c# - 将文本字段数据保存到数据库的代码

javascript - 显示错误答案

javascript - 中间异步函数不必总是用 Javascript 中的 `async` 关键字包装吗?

c# - ASP.Net MVC session 缓存

javascript - 使用 jquery 设置 css 属性

javascript - es6 模板文字是否可以防止 sql 注入(inject)?