javascript - vis.js 动态构建数据集

标签 javascript vis.js

我正在开发一个项目,并且需要/渴望使用 vis.js 在时间轴上显示数据。但是,由于数据的捕获方式,我需要在页面加载时动态地为时间线构建数据集。考虑到这一点,我开始尝试各种方法来做到这一点,但遇到了障碍,这很可能是由于我自己缺乏知识。

以下是我一直在使用的测试代码(我知道这不是最好或最干净的代码。我目前专注于功能,但如果您有清理此问题的建议,我会我洗耳恭听!)我想做的是使用变量 datasetlist 中的内容来构建数据集。但是,当我只是尝试将该变量传递给新的 vis.DataSet 时,它不会构建可视化。我很感激任何人能够提供的任何指导。我想知道是否需要以某种方式转换该变量以使 vis.js 接受它,但无法弄清楚是否确实如此,如果是,又如何。

var ERP = "yes";
var ERPDate = "2018";
var CRM = "no";
var CRMDate = "2019";
var IDSeq = 1;
var datasetlist = "";
var yesCount = 0

//count totalitems
if (ERP == "yes") {
    yesCount = (yesCount + 1);
}

if (CRM == "yes") {
    yesCount = (yesCount + 1);
}

//builddataset
if (ERP == "yes"){
    if (yesCount == IDSeq) {
    datasetlist = datasetlist + "{id: " + IDSeq + ", content: \'ERP\', start: \'" + ERPDate + "\'}";
} else {
    datasetlist = datasetlist +  "{id: " + IDSeq + ", content: \'ERP\', start: \'" + ERPDate + "\'},";
}
IDSeq = IDSeq +1
}

if (CRM == "yes"){
    if (yesCount == IDSeq) {
    datasetlist = datasetlist + "{id: " + IDSeq + ", content: \'CRM\', start: \'" + CRMDate + "\'}";
} else {
    datasetlist = datasetlist +  "{id: " + IDSeq + ", content: \'CRM\', start: \'" + CRMDate + "\'},";
}
}

//datasetlist = "{id: 1, content: 'ERP', start: '2018'}"
//window.alert(datasetlist);

      // DOM element where the Timeline will be attached
      var container = document.getElementById('visualization');

      // Create a DataSet (allows two way data-binding)
      var items = new vis.DataSet(datasetlist);

      // Configuration for the Timeline
      var options = {
    height: '500px',
      start: new Date(2015, 1, 15),
      end: new Date(2025, 1, 15),
      timeAxis: {scale: 'year', step: 1}
  };

      // Create a Timeline
      var timeline = new vis.Timeline(container, items, options);

最佳答案

Vis 需要一个项目数组作为数据集。像这样,var data = new vis.DataSet([data]),其中[data]是一个对象数组。因此,请尝试构建对象并将它们插入数组中,然后将其作为数据参数传递。该文档可以在这里找到 http://visjs.org/docs/data/dataset.html .

关于javascript - vis.js 动态构建数据集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37444361/

相关文章:

javascript - 如何在触发选项更改事件时自动关闭移动选择框?

javascript - vis.js beforeAddNode 处理程序

javascript - 将 Knockout.js 与自定义模板引擎结合使用

javascript - Vis.js:突出显示选定的节点并使其他节点变灰

javascript - Angular 路线重新加载后visjs时间线消失

javascript - 检索变量值而不是该变量的名称

javascript - 你如何让一个元素在开始另一个之前完成一个过渡?

javascript - 如何在 vis.js 时间轴中获取开始和结束时间?

javascript - 如果父菜单有子菜单,则单击两次以转到链接,如果没有子菜单,则单击一次以链接

javascript - jquery水平滚动条消失