我尝试使用日期敏感信息过滤某些数据
如果我选择一个没有日期的日期范围会返回一个空的结果数组,那么应用程序不会崩溃,但只要有数据包含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的问题,特定于日期,如果我尝试使用另一个过滤器,如:
dataSource.filter({
"field": "Note",
"operator": "contains",
"value": 'e'
});
根据过滤器,所有内容都可以更新。
详细代码,请访问GITHUB REPO
https://github.com/Danelund/NeuroHelper/blob/master/NeuroHelper/scripts/app.js
答案 0 :(得分:0)
我对这个问题的第一个想法是关于日期格式。在dataSource.filter
行之前放置一个断点,并检查日期格式是什么。您可能还应该使用某种date.toString()
函数将此日期对象转换为字符串。
dataSource.filter({
"field": "CreatedAt",
"operator": "gt",
"value": filterDate.toString()
});
答案 1 :(得分:0)
您是否已将要过滤的字段类型(即CreatedAt)指定为类型"日期" ? 如何进行演示here。
schema: {
model: {
id: "ProductID",
fields: {
CreatedAt: {
type: "date"
},