骨干与树视图小部件

时间:2011-05-27 09:34:31

标签: hierarchical-data backbone.js

我正在评估Backbone javascript framework在项目中使用,该项目将在树视图窗口小部件中显示分层模型(想想Windows文件浏览器)。

Backbone如何看待这个世界。然而,在我获得概念验证之前,涉及到许多编码,其中Backbone实际上从服务器接收分层模型并更新树窗口小部件。我已经看到representing deep data structures with Backbone有各种各样的解决方案,但我想知道......有没有人真正这样做过?

只知道这可能会有所帮助。实际上,命名树视图UI组件和指针使Backbone中的数据分层将更好。一些示例代码将非常棒。

就数据大小而言,树将运行100个节点(文件夹),其中包含1000个叶项(文档),并且逐步加载数据(例如,用户点击时一次一个文件夹)会很不错in),虽然这可能不是一个表明。

谢谢!

3 个答案:

答案 0 :(得分:5)

如果您不想沿着分层数据集路径向下移动,那么

一个选项是使用嵌套集(http://en.wikipedia.org/wiki/Nested_set_model)。这允许您将整个集合存储在单个数组(或列表或任何您想要调用的数组)中,并使用“left”和“right”值来确定列表的结构和层次结构。

如果我没记错的话,这项技术最初是为了优化关系数据库中的数据存储和查询而构建的。但是,我已经在C#/ Winforms应用程序中多次使用它,以避免具有递归的数据层次结构,并且它运行良好。

在javascript中执行此操作应该非常简单,但我不知道它对大型列表的执行效果如何。

答案 1 :(得分:1)

好问题,是的,我之前已经完成了这个

自2013年(http://backbonerelational.org/)以来,我一直在使用骨干关系,它对我来说很好。

我的场景与你的场景类似,我有一个复杂的JSON文件,里面有很多集合和集合。

使用此插件,您可以执行以下操作:

类产品扩展了Backbone.RelationalModel //只是一个例子。

relations: [
    {
        type : Backbone.Many
        key : 'the name of model or collection'
    }

阅读文档。它运作良好。

另一个帮助我实现的好插件是Model Binder(https://github.com/theironcook/Backbone.ModelBinder) 它有助于将视图与模型绑定。

我对这些插件做得很好,一切正常。

希望它有所帮助。

答案 2 :(得分:0)

也许你会在这个页面找到答案。 我试图在Backbone.js和Epoxy.js上编写分层树 https://stackoverflow.com/questions/20639550/backbone-epoxy-js-and-hierarchies-trees

看起来像这样

  • 顶级1
    • 第2级,第1项
      • 第3级,第1项
      • 第3级,第2项
      • 第3级,第3项
    • 第2级,第2项
      • 第3级,第4项
      • 第3级,第5项
        • 第4级,第1项
        • 第4级,第2项
        • 第4级,第3项
      • 第3级,第6项
  • 顶级2
    • 第二级,第3项
      • 第3级,第7项
      • 第3级,第8项
      • 第3级,第9项
    • 第二级,第4项
      • 第3级,第10项
      • 第3级,第11项
      • 第3级,第12项