当前位置: 首页 > 面试题库 >

Angular Js加载图表数据

云霖
2023-03-14
问题内容

我正在尝试使用ng-repeat创建图表(使用Chart.js Lib)。

编辑:plnkr

HTML:

<div class="graph-display" ng-controller="jsonServerBox">
<div class="bar-chart-box" ng-repeat="module in ocw.modules"> 
  <canvas class="chart chart-bar" data="{{module.data}}" labels="{{module.labels}}" series="{{module.series}}"></canvas>
</div>
</div>

JS:

app.controller('jsonServerBox', function($scope, $http) {
  var json = {"modules":[
                {
                   "series":"SeriesA",
                   "data":["90", "99", "80", "91", "76", "75", "60", "67", "59", "55"],
                   "labels":["01", "02", "03", "04", "05", "06", "07","08","09","10"]
                },

                {
                   "series":"SeriesB",
                   "data":["90", "99", "80", "91", "76", "75", "60", "67", "59", "55"],
                   "labels":["01", "02", "03", "04", "05", "06", "07","08","09","10"]
                }

        ]}; 
    $scope.ocw = json;
    });

而且我收到以下错误:

Syntax Error: Token 'module.data' is unexpected, expecting [:] at column 3 of the expression [{{module.data}}] starting at [module.data}}].

请帮忙。


问题答案:

直接从View分配范围变量,例如data="module.data" labels="module.labels" series="module.series"

在向指令提供数据和标签时,请勿使用内部污染指令。因为chart.js实现基于孤立的范围

的HTML

<div class="graph-display" ng-controller="jsonServerBox">
<div class="bar-chart-box" ng-repeat="module in ocw.modules"> 
  <canvas class="chart chart-bar" data="module.data" labels="module.labels" series="{{module.series}}"></canvas>
</div>
</div>

这可以为您提供帮助。谢谢。

更新1:

实际上,您错过了几件事。

"series": ["SeriesA"],
"data": [["90", "99", "80", "91", "76", "75", "60", "67", "59", "55"]],

您代码中的更改是

  1. 将Wrap Series内部数组更改"series": "SeriesA""series": ["SeriesA"]
  2. 将数据数组包装在数组内,因为它将维数组作为输入。

有关更多信息,请检查 WorkingPlunkr

谢谢。



 类似资料:
  • 我试图加载新数据(隐藏特定的图形),我试图函数像这里,但它不工作,我不知道我错过了什么。 我想加载一个数据(两个),但我想选择哪一个可见。 HTML JavaScript 小提琴连杆

  • 问题内容: 我一直在寻找一个简单但并非琐碎的问题的答案:仅使用jqLit​​e在Angular中捕获图像事件的正确方法是什么?但是我想要一些指令解决方案。 因此,正如我所说,这对我来说是不可接受的: 因为它在控制器中,而不在指令中。 问题答案: 这是angular内置事件处理指令样式的可重用指令: 触发img load事件时,将在当前作用域中将sb-load属性中的表达式与load事件一起评估,并

  • 问题内容: 在数据完成加载之前,如何使AngularJS显示加载微调框? 如果我的控制器是静态设置的,并且填充了AJAX加载器,我希望微调器显示直到AJAX加载完成,然后使用检索到的数据填充绑定范围。 此代码立即填充绑定范围,并且如果为空,则微调框将被替换为空。 我应该如何干净地做这件事? 问题答案: 我会根据其他答案创建一个自定义指令,但是这是没有指令的情况下如何实现的,这可能是在进入更复杂的功

  • 问题内容: 我在将服务中的数据填充到视图中时遇到问题。我有这样定义的服务 和我的控制器 如果我从控制器使用$ http.get,数据将很好地填充,但是,如果我尝试从服务中调用数据,那么我什么也不会得到。我知道查询是异步的,但是我很难理解一旦返回数据就如何填充$ scope变量。我可以使用$ rootscope广播事件并在控制器中侦听它,但这似乎并不是完成此事件的正确方法。对于如何正确执行此操作的任

  • Highcharts 曲线图 以下实例演示了异步加载数据曲线图表。这边我们通过 jQuery.getJSON() 方法从异步加载 csv 文件: 我们在前面的章节已经了解了 Highcharts 配置语法。接下来让我们来看个完整实例: 导入 data.js 文件 异步加载数据需要引入以下js 文件: <script src="http://code.highcharts.com/modules/d