Javascript 使用动态数据绘制Chart.js,但显示“无法读取”属性;跳过“;未定义的
我不熟悉angular js和chart js。我想用带有动态数据的图表js绘制图形,下面是服务器返回时的结果: 我从服务器获取“nameArray”和“values”,并希望将其放入chart.js中Javascript 使用动态数据绘制Chart.js,但显示“无法读取”属性;跳过“;未定义的,javascript,angularjs,Javascript,Angularjs,我不熟悉angular js和chart js。我想用带有动态数据的图表js绘制图形,下面是服务器返回时的结果: 我从服务器获取“nameArray”和“values”,并希望将其放入chart.js中 $scope.drawChart = function () { console.log("start draw"); var name = $scope.result.nameArray var value = $sc
$scope.drawChart = function () {
console.log("start draw");
var name = $scope.result.nameArray
var value = $scope.result.values
var ctx = document.getElementById('myChart').getContext('2d');
var chart = new Chart(ctx, {
// The type of chart we want to create
type: 'bar',
// The data for our dataset
data: {
labels: name,
datasets: [{
// label: "My First dataset",
label: name,
backgroundColor: 'rgb(255, 99, 132)',
borderColor: 'rgb(255, 99, 132)',
// data: [0, 10, 5, 2, 20, 30, 45],
data: value,
}]
},
// Configuration options go here
options: {}
});
}
还有我的角度控制器部分:
$scope.result = [];
$scope.getPosts = function () {
$http({
method: 'POST',
url: 'http://localhost/test.php',
data: {
"action": "getchartdata",
"username": "username",
"deptname": "departname",
"officename": "office",
"softwarename": "this",
"StartTime": "time",
"EndTime": "time",
"ipaddress": "10.0.90.1"
},
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
},
transformRequest: function (data) {
var str = [];
for (var p in data)
str.push(encodeURIComponent(p) + "=" + encodeURIComponent(data[p]));
return str.join("&");
}
}).then(function (result) {
$scope.result = result.data
console.log($scope.result);
console.log($scope.result.nameArray)
$scope.drawChart();
}, function (error) {
console.log("error")
});
};
我得到这个错误:
我不知道那里发生了什么,或者chartjs不支持这样做?你能解析两个数组JSON.parse($scope.result.nameArray)JSON.parse($scope.result.values)并看看是否有任何区别吗?@Vivz是的,它可以工作。一旦我转到JSON.parse,这个错误就消失了,图形函数现在正在工作。是的,我知道您必须解析:)