我正在使用vis.js中的时间表。根据我的查询字符串(您可以在下图中看到它),我需要应用一些过滤器,并使用查询字符串中的开始日期和结束日期来设置窗口。
在这种情况下,开始日期应为2015年11月13日星期五。我使用getWindow()
方法作为测试,以在绘制时间轴后显示该值,并且警报窗口显示2015年13月13日(相同就像查询字符串中一样)。但是...出于某种原因,窗口使用2013年作为开始日期。好像窗口是在时间轴中的项目之后设置的。
我正在使用4.21.0版本。我尝试使用4.16.1,然后按预期方式工作(但不适用于我的小组-最终,我在时间表创建中遇到了其他一些错误)。
有人知道为什么窗口没有正确更新吗?您可以在下面找到我用于初始化时间轴的方法。
我也尝试更新选项(开始日期和结束日期),但是它也不起作用
initializeData = function()
{
//Check URL and QueryString
var url = window.location.href.toString();
var queryString = (url.split("?"))[1];
if (queryString == undefined || queryString=="" || queryString==null)
resetData();
else //Else: filter data based on URL QueryString
{
var query = decodeURI(queryString);
var startAndEnd = [];
var result = query.split('&');
for (var i = 0; i < result.length; i++) {
var cat = result[i].split('=')[0];
var values = result[i].split('=')[1];
var isArray;
if (cat.indexOf('[]') != -1) //Contains the characters
isArray = true;
else
isArray = false;
var pair;
if (isArray)
pair = { 'cat': cat, 'values': [values] };
else
pair = {'cat': cat, 'values': values };
//Pick parts from the query string and create filters, groupsArray and zoomSettings
if (cat == "start" || cat == "end") {
var repl = values.replace(/%3A/g,':');
var repl2 = repl.replace(/\+/g,' ');
var val = repl2.replace(/%2B/g,'+');
pair = {'cat': cat, 'val': val };
startAndEnd.push(pair);
}
else if (cat == 'region[]' || cat =='region')
{
allGroups = loadTestGroups();
for (var j = 0; j < allGroups.length; j++) {
if(allGroups[j].region == values)
filterGroupsArr.push(allGroups[j]);
}
}
else
currentFilters.push(pair);
};
RunFilter();
//ERROR with stWindow()
timeline.setWindow(((startAndEnd[0]).val).toString(), ((startAndEnd[1]).val).toString(), {animation: false});
var windowdate = timeline.getWindow();
alert(windowdate.start);
}
}