我正在尝试创建一个由多个嵌套的可排序表单组成的导航菜单编辑器,这些表单最终将作为一个包含所有表单数据的巨型嵌套JSON数据blob集中提交。
我正在检查的两个库是nestableSortable(https://github.com/mjsarfatti/nestedSortable)和Nestable(https://github.com/dbushell/Nestable)。这两个库似乎是这类工作中最常用的项目,但似乎都没有内置的功能来序列化和嵌套这些表单。现在我假设任何一个库都要求我以某种方式自己构建这个功能。
Nestable似乎有点新,并且不依赖于JQuery-UI,而nestableSortable看起来更加功能丰富。我也想知道是否有人有嵌套表单的类似问题,以及他们是否有任何关于如何使这些库轻松地将嵌套表单序列化为JSON结构的提示,以及这些库中的任何一个是否更适合这样的一个项目。
答案 0 :(得分:5)
如果有人有兴趣,经过进一步检查后,我发现Nestable需要这种格式才能工作:
<div class="dd">
<ol class="dd-list">
<li class="dd-item" data-id="1">
<div class="dd-handle">Item 1</div>
</li>
</ol>
</div>
我对JS库对所需元素属性如此严格的想法并不特别满意,因为我觉得Javascript应该在某种程度上独立于标记处理它。因此,我最终在Nestable库上选择了nestedSortable。
此外,nestedSortable似乎具有树中节点的左/右/父属性的可用属性,这在执行树操作时可能对服务器端有用。
答案 1 :(得分:3)
我从nestedSortable开始,然后切换到nestable。我现在切换回nestedSortable,因为它兼容IE7(项目要求)。是的,很容易理解nestable的更简约结构,但是,在提交这些(优秀的)实用程序之前,一定要使用目标浏览器进行测试。
BTW,两者都能够序列化他们的数据(nestable有一个,nestedSortable有多个)。