我有一个到数据库的ajax调用来获取日期字段,基本上是这样的。["2016-3", "2016-5", "2016-6", "2016-7", "2016-8"],当我从数据库中调用它们时,我得到的它们与你在数组中看到的方式完全一样,但是我不能让它们在图表上工作,如果我手动输入这些数组,它就可以工作,但如果我使用observableArray或普通的js数组,两者都不能工作。下面是正在进行的ajax调用的代码。
var arr = [ ]; //normal js array
self.DateArray = ko.observableArray(); // knockout js array
self.LineChart = function () {
$.ajax({
type: 'POST',
url: BASEURL + 'index.php/moneyexchange/portfolioDevelopment/' + auth ,
contentType: 'application/json; charset=utf-8'
})
.done(function(data) {
console.log(data);
arr = data.slice();
self.DateArray(data);
console.log(self.DateArray());
console.log(arr);
})
.fail(function(xhr, status, error) {
alert(status);
})
.always(function(data){
});
};
self.LineChart(); 两个console.log都显示了这一点。

折线图正在工作,因为这些值是手动键入的。
this.MasnadsLineChart = {
labels: ["2016-3", "2016-5", "2016-6", "2016-7", "2016-8"],
datasets: [
{
label: "My First dataset",
fillColor: "rgba(220,220,220,0.1)",
strokeColor: "yellow",
pointColor: "#ffcc33",
pointStrokeColor: "#fff",
pointHighlightFill: "#fff",
pointHighlightStroke: "rgba(220,220,220,1)",
data: [65, 59, 80, 81, 56, 55, 40,80, 81, 56, 55, 40]
},
{
label: "My Second dataset",
fillColor: "rgba(151,187,205,0.1)",
strokeColor: "rgba(151,187,205,1)",
pointColor: "rgba(151,187,205,1)",
pointStrokeColor: "#fff",
pointHighlightFill: "#fff",
pointHighlightStroke: "rgba(151,187,205,1)",
data: [41, 48, 40, 19, 86, 27, 90 ,80, 81, 56, 55, 40]
}
]
};我试着写labels : self.DateArray(),甚至labels : arr都不能工作,现在我对如何让这些值在图形上工作感到困惑。这就是ajax调用带回来的东西

这是我从中获得图表https://github.com/grofit/knockout.chart的链接
发布于 2016-04-28 15:07:38
您将用一个新数组替换arr,但不会对arr anywhere执行任何操作。
如果希望KO看到数据,则需要将其放入可观察的数组中,而不是不相关的原始数组中。
也许:
.done(function(data) {
self.DateArray(data);
})另外:
我试过写
labels : self.DateArray(),甚至labels : arr都不能工作
这是一个KO库,它可能需要一个可观察的数组:
labels: self.DateArrayhttps://stackoverflow.com/questions/36907466
复制相似问题