Backbone avec un widget d’affichage d’arbre

J’évalue le framework JavaScript Backbone à utiliser dans un projet qui affichera un modèle hiérarchique dans un widget d’arborescence (pensez au navigateur de fichiers Windows).

J’aime comment Backbone pense au monde. Cependant, avant de passer à une validation de principe, Backbone reçoit un modèle hiérarchique d’un serveur et met à jour un widget d’arbre. J’ai vu qu’il existe diverses solutions pour représenter des structures de données profondes avec Backbone , mais je me demande … est-ce que quelqu’un a réellement fait cela?

Savoir que c’est possible serait une aide. Nommer le composant d’interface utilisateur de la vue arborescente et les pointeurs permettant de hiérarchiser les données dans Backbone serait encore mieux. Un peu de code serait incroyablement fantastique.

En ce qui concerne la taille des données, l’arbre exécutera des centaines de nœuds (dossiers) contenant des milliers d’éléments de feuille (documents), et il serait intéressant de charger progressivement les données (par exemple, un dossier à la fois). Bien que ce ne soit probablement pas un casse-tête.

Merci!

une option si vous ne voulez pas parcourir le chemin hiérarchique des fichiers, consiste à utiliser un ensemble nested ( http://en.wikipedia.org/wiki/Nested_set_model ). Cela vous permet de stocker toute la collection dans un seul tableau (ou la liste ou ce que vous voulez l’appeler) et d’utiliser une valeur “gauche” et “droite” pour déterminer la structure et la hiérarchie de la liste.

Si je me souviens bien, cette technique était à l’origine conçue pour optimiser le stockage des données et les requêtes dans une firebase database relationnelle. cependant, je l’ai utilisé plusieurs fois dans les applications C # / Winforms, pour éviter d’avoir une hiérarchie récursive des données, et cela a bien fonctionné.

une implémentation de ceci en javascript devrait être assez facile, mais je ne sais pas comment elle fonctionnerait avec une grande liste.

Bonne question, oui, je l’ai fait avant

J’utilise le backbone relationnel depuis ( http://backbonerelational.org/ ) 2013 et cela fonctionne très bien pour moi.

Mon scénario est similaire au vôtre, j’ai un fichier JSON compliqué avec beaucoup de collections et de collections à l’intérieur de la collection.

Avec ce plugin, vous pouvez faire des choses comme:

  • Possède un tableau de définitions de relation. Cela signifie que vous pouvez définir un arbre de collections / modèles. plus ici ( http://backbonerelational.org/#RelationalModel-relations )

  • Spécifiez le type de la relation, exmple: Certaines collections peuvent avoir une ou plusieurs références à un type de relation.

Le produit de classe étend Backbone.RelationalModel // juste un exemple.

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

Lisez la documentation. Ça marche bien

Model Binder ( https://github.com/theironcook/Backbone.ModelBinder ) est un autre bon plug-in qui m’aide dans mon implémentation. Il permet de lier des vues avec des modèles.

Je me débrouille bien avec ces plugins, tout fonctionne.

J’espère que cela aide.

Peut-être trouverez-vous la réponse sur cette page. J’ai essayé d’écrire l’arborescence hiérarchique sur Backbone.js et Epoxy.js https://stackoverflow.com/questions/20639550/backbone-epoxy-js-and-hierarchies-trees

C’est comme ça :

  • premier niveau 1
    • 2e niveau, élément 1
      • 3ème niveau, point 1
      • 3ème niveau, point 2
      • 3ème niveau, item 3
    • 2ème niveau, point 2
      • 3ème niveau, point 4
      • 3ème niveau, point 5
        • 4ème niveau, point 1
        • 4ème niveau, point 2
        • 4ème niveau, point 3
      • 3ème niveau, point 6
  • niveau 2 supérieur
    • 2ème niveau, point 3
      • 3ème niveau, point 7
      • 3ème niveau, point 8
      • 3ème niveau, point 9
    • 2ème niveau, point 4
      • 3ème niveau, item 10
      • 3ème niveau, point 11
      • 3ème niveau, point 12