通过 AJAX 结果查看数据集
Vis DataSet via AJAX result
我正在使用 visjs timeline 制作时间轴,我有一个按钮可以在单击事件时重绘该时间轴。重绘是通过使用 AJAX 从 timeline.php 获取数据来完成的,但是接收到的数据在 DataSet 中不起作用!
这是我目前得到的:
点击按钮触发的函数:
function redrawTL(){
$.ajax({
type: "POST", url: "ajax/timeline.php", data: {},
success: function(data){
redraw(data);
}
});
}
假设我已经设置了变量 items 和 tl,应该重绘时间线的函数
function redraw(data){
console.log(data);
items = new vis.DataSet([ data ]); // This doesn't!!
tl.destroy();
tl = new vis.Timeline(container, items, options);
}
所以我的问题是为什么它不起作用?!知道数据显示在console.
数据应该用以下数据填充:
{id: 0, content: '07:10:12', start: today.clone().add(25606, 'seconds'), 'className': 'tmstyle'},
{id: 1, content: '00:40:06', start: today.clone().add(56563, 'seconds'), 'className': 'arretNU'},
{id: 2, content: '00:01:07', start: today.clone().add(63312, 'seconds'), 'className': 'arretNU'},
{id: 3, content: '00:00:16', start: today.clone().add(63389, 'seconds'), 'className': 'arretNU'}
如果我将重绘函数设为静态,它就可以正常工作。
经过一天的尝试,我终于想出了以下解决方案:
function redrawTL(){
$.ajax({
type: "POST",url: "ajax/timeline.php", data: {},
success: function(data){
var result = JSON.parse(JSON.parse(JSON.stringify(data)));
items.clear();
items.add(result);
timeline.fit();
}
});
}
只有当我在另一个上使用 JSON.parse 时它才有效!
我正在使用 visjs timeline 制作时间轴,我有一个按钮可以在单击事件时重绘该时间轴。重绘是通过使用 AJAX 从 timeline.php 获取数据来完成的,但是接收到的数据在 DataSet 中不起作用!
这是我目前得到的:
点击按钮触发的函数:
function redrawTL(){
$.ajax({
type: "POST", url: "ajax/timeline.php", data: {},
success: function(data){
redraw(data);
}
});
}
假设我已经设置了变量 items 和 tl,应该重绘时间线的函数
function redraw(data){
console.log(data);
items = new vis.DataSet([ data ]); // This doesn't!!
tl.destroy();
tl = new vis.Timeline(container, items, options);
}
所以我的问题是为什么它不起作用?!知道数据显示在console.
数据应该用以下数据填充:
{id: 0, content: '07:10:12', start: today.clone().add(25606, 'seconds'), 'className': 'tmstyle'},
{id: 1, content: '00:40:06', start: today.clone().add(56563, 'seconds'), 'className': 'arretNU'},
{id: 2, content: '00:01:07', start: today.clone().add(63312, 'seconds'), 'className': 'arretNU'},
{id: 3, content: '00:00:16', start: today.clone().add(63389, 'seconds'), 'className': 'arretNU'}
如果我将重绘函数设为静态,它就可以正常工作。
经过一天的尝试,我终于想出了以下解决方案:
function redrawTL(){
$.ajax({
type: "POST",url: "ajax/timeline.php", data: {},
success: function(data){
var result = JSON.parse(JSON.parse(JSON.stringify(data)));
items.clear();
items.add(result);
timeline.fit();
}
});
}
只有当我在另一个上使用 JSON.parse 时它才有效!