0

我正在尝试为包含日期敏感信息的图表过滤一些数据

如果我选择一个没有日期的日期范围,它将返回一个空的结果数组,应用程序不会崩溃,但只要有数据在 FilterDate 和 gte 的范围内(因此,在filterDate),然后应用程序在该行崩溃。

axisChange : function(){
  //set date from period
  var filterDate = new Date();

  switch(this.get('selectedPeriod'))
  {
    case 'week':
      filterDate.setMonth(filterDate.getMonth()-1);
      break;
    case 'day':
      filterDate.setDate(filterDate.getDate()-7);
      break;
    case 'hour':
      filterDate.setDate(filterDate.getDate()-1);
      break;
  }
  /*var chart = jQuery("#chart").data("kendoChart");
  chart.setOptions({ categoryAxis: { baseUnit: this.get('selectedCategory') }});*/
  dataSource.filter({
    "field": "CreatedAt",
    "operator": "gt",
    "value": filterDate
  });
}

编辑

如果我尝试使用另一个过滤器,例如:

dataSource.filter({
                        "field": "Note",
                        "operator": "contains",
                        "value": 'e'
                    });

根据过滤器,一切都更新好了。

详细代码请访问 GITHUB REPO

https://github.com/Danelund/NeuroHelper/blob/master/NeuroHelper/scripts/app.js

4

2 回答 2

0

我对这个问题的第一个想法是关于日期格式。在行前放置一个断点dataSource.filter并检查日期格式是什么。可能您还应该使用某种date.toString()函数将此日期对象转换为字符串。

dataSource.filter({
  "field": "CreatedAt",
  "operator": "gt",
  "value": filterDate.toString()
});
于 2015-04-20T08:33:03.770 回答
0

Have you specified the type of the field that you want to filter (i.e. CreatedAt) to be of type "date" ? How to do so is demonstrated here.

schema: {
model: {
  id: "ProductID",
  fields: {
    CreatedAt: {
      type: "date"
    },
于 2015-04-20T20:08:09.093 回答