在过去的 4 个小时里,我一直在努力让这件事发挥作用。我对 angular.js、jquery、highcharts 和所有这些东西都很陌生,我找不到解决这个问题的方法。
我想要做的是在 div 中创建一个高图表图形。图形的 json 从后端以正确的方式传入,因此无需对 json 进行任何更改。
所以,我做了以下事情:
首先,在html中:
<div ng-controller="ChartController">
<div class="chart-container" id="chartContainer"></div>
</div>
为了收集数据,我做了以下工作:
var termomether = angular.module('termomether', [ 'ngResource' ]);
termomether.factory('Chart', function($resource) {
return $resource('/app/api/chart', {}, {
query : {
method : 'GET',
params : {},
isArray : true
}
});
});
termomether.controller('ChartController', function($scope, Chart) {
$('#chartContainer').highcharts(Chart.query())
});
结果是显示了图形,但为空。它具有我预期的大小,但没有数据,它显示一个空的白框。
如果此时您认为问题出在 json 上,这可能会让您产生不同的想法。如果我按以下形式更改控制器,图形将完美显示:
var termomether = angular.module('termomether', [ 'ngResource' ]);
termomether.controller('ChartController', function($scope, $http) {
$http.get('api/chart').success(function(items) {
$(function() {
$('#chartContainer').highcharts(items)
});
});
});
因此......我不知道为什么它不能在使用工厂和资源的控制器中工作