hierarchical-data backbone.js

hierarchical data - Backbone con un widget de vista de árbol



hierarchical-data backbone.js (3)

Estoy evaluando el framework Backbone de JavaScript para usar en un proyecto que mostrará un modelo jerárquico en un widget de vista de árbol (piense en el buscador de archivos de Windows).

Me encanta cómo piensa Backbone sobre el mundo. Sin embargo, hay una gran cantidad de codificación involucrada antes de llegar a una prueba de concepto que tiene Backbone recibiendo realmente un modelo jerárquico de un servidor y la actualización de un widget de árbol. He visto que hay varias soluciones para representar estructuras de datos profundas con Backbone , pero me pregunto ... ¿alguien ha hecho esto?

Saber que es posible sería una ayuda. En realidad, nombrar el componente UI de la vista en árbol y los punteros para hacer que los datos sean jerárquicos en Backbone sería aún mejor. Un poco de código de muestra sería increíblemente fantástico.

En cuanto al tamaño de los datos, tree ejecutará cientos de nodos (carpetas) con menos 1000 de elementos hoja (documentos), y sería bueno cargar progresivamente los datos (por ejemplo, una carpeta a la vez mientras el usuario hace clic), aunque eso probablemente no sea sorprendente.

¡Gracias!


Buena pregunta, sí, he hecho esto antes

He estado usando backbone relational desde ( http://backbonerelational.org/ ) 2013, y funciona bien para mí.

Mi escenario es similar al tuyo, tengo un archivo JSON complicado con muchas colecciones y colección dentro de la colección.

Con este complemento puedes hacer cosas como estas:

  • Tiene una variedad de definiciones de relación. Significa que puedes definir un árbol de colecciones / modelos. más aquí ( http://backbonerelational.org/#RelationalModel-relations )

  • Especifique el tipo de relación, por ejemplo: Alguna colección podría tener una o más de esa referencia a un tipo de relación.

producto de clase extiende Backbone.RelationalModel // solo un ejemplo.

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

Lea la documentación. Funciona bien

Otro buen complemento que me ayudó en mi implementación fue Model Binder ( https://github.com/theironcook/Backbone.ModelBinder ). Ayuda a unir vistas con modelos.

Estoy bien con estos complementos, todo está funcionando.

Espero eso ayude.


Tal vez encuentres una respuesta en esta página. Traté de escribir un árbol jerárquico en Backbone.js y Epoxy.js https://.com/questions/20639550/backbone-epoxy-js-and-hierarchies-trees

Se ve así :

  • nivel superior 1
    • 2 ° nivel, elemento 1
      • 3er nivel, elemento 1
      • 3er nivel, elemento 2
      • 3er nivel, elemento 3
    • 2 ° nivel, elemento 2
      • 3er nivel, elemento 4
      • 3er nivel, elemento 5
        • 4º nivel, elemento 1
        • 4 ° nivel, elemento 2
        • 4º nivel, elemento 3
      • 3er nivel, elemento 6
  • nivel superior 2
    • 2 ° nivel, elemento 3
      • 3er nivel, elemento 7
      • 3er nivel, elemento 8
      • 3er nivel, elemento 9
    • 2 ° nivel, elemento 4
      • 3er nivel, elemento 10
      • 3er nivel, elemento 11
      • 3er nivel, elemento 12

Una opción si no desea viajar por la ruta de conjunto de datos jerárquica es utilizar un conjunto anidado ( http://en.wikipedia.org/wiki/Nested_set_model ). esto le permite almacenar toda la colección en una única matriz (o lista o como quiera llamarla) y usar un valor "izquierda" y "derecha" para determinar la estructura y la jerarquía de la lista.

si mal no recuerdo, esta técnica fue construida originalmente para optimizar el almacenamiento de datos y las consultas en una base de datos relacional. sin embargo, lo he usado varias veces en aplicaciones C # / Winforms, para evitar tener una jerarquía recursiva de datos, y funcionó bien.

una implementación de esto en javascript debería ser bastante fácil, pero no sé qué tan bien funcionaría con una gran lista.