如何在 vis.js 时间轴中对 nestedGroups 进行排序?

How to sort nestedGroups in vis.js timeline?

我对 nestedGroups 有疑问。我在创建 itemsnestedGroups 之前对数组进行了排序,但即便如此,出于某种原因,我还是在时间轴的最后一个位置上获得了第一项。

这是我的问题的截图。 activity_9 项目需要在 activity_10 项目之前。我很困惑,因为在上面的组中 nestedGroups 的顺序很好。谁能帮帮我。谢谢。

我自己遇到了这个问题,据我了解,原因是 js 按字母顺序读取它,所以 1-9 没问题,但 10 低于 2,因为它只读取第一个数字。

所以我所做的是在我的 id 前面添加一些数字。所以它总是一样的长度。

1000、1001、1002 - 一直到 9999(如果您需要超过 10.000 个实体,请添加 ekstra 零)

我使用 Mysql 添加数字,因为我通过它提取所有数据。

所以我的代码看起来像这样

$sortnum = $row['id'];
$sortnum = "1".str_pad($sortnum, 4, '0', STR_PAD_LEFT);

如果您的 ID 为 10,则 return 10010,如果您有 2,则为 10002 这样 js 就会正确读取它,因为 10002 小于 10010

我知道这可能不是一个好的或探索性的方法,但对我来说很有效,直到我找到更好的解决方案。

编辑:

如果您为其他内容锁定了 id 插槽,您可以按内容对其进行排序,并简单地从包含之前工作的 "id" 的隐藏字段开始内容。

那么你所要做的就是在 vis.js 的选项中将 groupOrder 设置为 groupOrder: 'content',