javascript - 如何在 vis.js 时间轴中对嵌套组进行排序?

标签 javascript vue.js vuejs2 vis.js vis.js-timeline

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

enter image description here

这是我的问题的屏幕截图。 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,则返回 10010,如果您有 2,则返回 10002 这样 js 就会正确读取它,因为 10002 小于 10010

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

编辑:

如果您将 id 插槽锁定为其他内容,您可以按内容对其进行排序,并简单地使用包含之前的“id”的隐藏字段来启动内容,效果也一样。

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

关于javascript - 如何在 vis.js 时间轴中对嵌套组进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53048386/

相关文章:

javascript - 如何使用vuejs在每一行显示复选框

javascript - 为基于 Electron-vue 的应用程序设置 key 过期

nginx - vue 与 nginx : path not matching

java - 无法在我的 JavaScript 客户端上解码我的 Base64 字符串

javascript - 如何模拟点击事件

javascript - 您可以使用 PhoneGap 和 iOS 从 native 代码(不在回调中)调用 javascript 函数吗?

javascript - 阿拉伯语本地化

Vue.js test-utils 如何模拟模块中的 getter

vue.js - vue js 2 对表格进行排序

css - 跳过 v-for vuejs2 的第一个结果