与树视图小部件的主干
我正在评估一个项目中使用的Backbone JavaScript框架 ,该项目将在树视图窗口小部件中显示分层模型(请考虑Windows文件浏览器)。
我喜欢 Backbone如何看待这个世界。 然而,在我接触到一个概念certificate之前,有很多代码都是由Backbone实际上从一个服务器接收一个分层模型并更新一个树部件。 我已经看到了用Backbone来表示深层数据结构的各种解决scheme,但我想知道…有没有人真的这样做?
只要知道这是可能的将是一个帮助。 实际上命名树视图UI组件和在Backbone中使数据分层的指针会更好。 一些示例代码将会非常棒。
就数据大小而言,树会运行100个叶子项目(文档)的低1000个节点(文件夹),并且逐渐加载数据(例如,一次点击一个文件夹)将是很好的。虽然这可能不是一个showstopper。
谢谢!
如果您不想沿着分层数据集path行进,则可以使用嵌套集( http://en.wikipedia.org/wiki/Nested_set_model )。 这允许您将整个集合存储在单个数组(或列表或任何您想要调用它)中,并使用“左”和“右”值来确定列表的结构和层次结构。
如果我没记错的话,这个技术最初是为了优化关系数据库中的数据存储和查询而构build的。 不过,我已经在C#/ Winforms应用程序中多次使用过它,以避免产生recursion层次的数据,并且运行良好。
这在JavaScript中的实现应该是相当容易的,但我不知道如何执行一个大的列表。
好问题,是的,我之前做过这个
自从( http://backbonerelational.org/)2013以来,我一直在使用骨干关系,对我来说工作得很好。;
我的场景与你的场景类似,我有一个复杂的JSON文件,集合中有很多集合和集合。
有了这个插件,你可以做这样的事情:
-
有一个关系定义的数组。 这意味着你可以定义一个集合/模型树。 ( http://backbonerelational.org/#RelationalModel-relations )
-
指定关系的types,例如:一些集合可以有一个或多个对关系types的引用。
class产品扩展Backbone.RelationalModel //只是一个例子。
relations: [ { type : Backbone.Many key : 'the name of model or collection' }
阅读文档。 它运作良好。
另一个很好的插件,可以帮助我实现Model Binder( https://github.com/theironcook/Backbone.ModelBinder )它有助于将视图与模型绑定。
我做这些插件好,一切正常。
希望能帮助到你。
也许你会在这个页面上find答案。 我试图写在Backbone.js和Epoxy.js分层树https://stackoverflow.com/questions/20639550/backbone-epoxy-js-and-hierarchies-trees
这是这样的 :
- 顶级1
- 第二级,第1项
- 第3级,第1项
- 第3级,第2项
- 第3级,第3项
- 第2级,第2项
- 第3级,第4项
- 第3级,第5项
- 第四级,第1项
- 第四级,第2项
- 第四级,第3项
- 第三级,第6项
- 第二级,第1项
- 顶级2
- 第二级,第3项
- 第3级,第7项
- 第三级,第8项
- 第三级,第9项
- 第2级,第4项
- 第三级,第10项
- 第三级,第11项
- 第三级,第12项
- 第二级,第3项