我对数据库进行了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();
折线工作正常,因为值是手动输入的。
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
答案 0 :(得分:0)
您正在使用新数组替换isLocalValueSet()
,但不能在任何地方使用arr
执行任何操作。
如果您希望KO查看数据,则需要将其放在可观察数组中,而不是无关的原始数组。
也许:
arr
此外:
我尝试写
.done(function(data) { self.DateArray(data); })
,甚至labels : self.DateArray()
都不起作用
它是一个KO库,它可能期待一个可观察的数组:
labels : arr