首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法使用JS/KnockoutJS获取要在折线图中显示的数组

无法使用JS/KnockoutJS获取要在折线图中显示的数组
EN

Stack Overflow用户
提问于 2016-04-28 15:00:17
回答 1查看 72关注 0票数 4

我有一个到数据库的ajax调用来获取日期字段,基本上是这样的。["2016-3", "2016-5", "2016-6", "2016-7", "2016-8"],当我从数据库中调用它们时,我得到的它们与你在数组中看到的方式完全一样,但是我不能让它们在图表上工作,如果我手动输入这些数组,它就可以工作,但如果我使用observableArray或普通的js数组,两者都不能工作。下面是正在进行的ajax调用的代码。

代码语言:javascript
复制
  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都显示了这一点。

折线图正在工作,因为这些值是手动键入的。

代码语言:javascript
复制
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的链接

EN

回答 1

Stack Overflow用户

发布于 2016-04-28 15:07:38

您将用一个新数组替换arr,但不会对arr anywhere执行任何操作。

如果希望KO看到数据,则需要将其放入可观察的数组中,而不是不相关的原始数组中。

也许:

代码语言:javascript
复制
.done(function(data) {
    self.DateArray(data);
})

另外:

我试过写labels : self.DateArray(),甚至labels : arr都不能工作

这是一个KO库,它可能需要一个可观察的数组:

代码语言:javascript
复制
labels: self.DateArray
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36907466

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档