10
votes

Comment construire une collection / modèle à partir de JSON imbriquée avec de la backbone.js

Je suis relativement nouveau à Backbone.js

J'ai un JSON comme la photo montre! J'ai vu des réponses en relation avec la colonne vertébrale-relationnelle, mais je n'ai toujours pas le point!

Comment puis-je convertir cette JSON à Backbone.js Collections / Modèles ??

i Mise à jour avec un code mais cela ne fonctionne pas comme prévu! Je ne peux pas voir un modèle quand je le fais:

Ma structure est la suivante:

[0]: est une collection de modèles

[CLEFS] +. .. + [RESTE]: Collection de modèles

(CLEFS) => [0] + ... + [9]: Les modèles (le titre contient une chaîne, un chemin aussi)

merci beaucoup !!

EDIT (10.01.12):

Ma solution: xxx

Ce m'a aidé aussi!

 tableau imbriqué


2 commentaires

Vous souhaitez également avoir imbriqué des modèles / collections de colonne vertébrale (ce n'est pas nécessaire à 100%, en fonction de vos besoins). Vous pourrez peut-être vous procurer avec juste un seul modèle de colonne vertébrale, avec un seul objet.


@Trouble après avoir été allé avec la colonne vertébrale-relationnelle, je suis allé avec votre solution (analyse durs). Avec le squelette-relationnel, certains événements «Ajouter», etc. n'étaient pas licenciés et causaient des problèmes. Merci d'avoir posté!


3 Réponses :



18
votes

Je suis au travail, je ne peux donc pas vous donner une réponse entièrement codée, mais le gist est, vous pouvez effectuer ce qui suit dans vos modèles de haut niveau pour obtenir une hiérarchie modèle imbriquée:

var AmericasNextTopModel = Backbone.Models.extend({
    initialize: function(){

        this.set({
             clefs: new ClefCollection(this.get('clefs')),
             accidentals: new AccidentalCollection(this.get('accidentals')),
             notes: new NoteCollection(this.get('notes')),
             rests: new RestCollection(this.get('rests'))
        });
    }
});


1 commentaires

Oui je fais: d !! Je vais vous dire quand je suis terminé! Je fais une mise à jour dans mon message sur votre réponse!



0
votes

J'utilise php pour saisir un flux comme JSON puisqu'il est sur un domaine différent. Je sauve les résultats à une variable JS, puis je viens de réussir en utilisant ceci pour l'obtenir dans ma collection dorsale ...

var feedCollection = new Backbone.Collection();
feedCollection.set(myFeedJSON.nestedObject.nestedArrayIWant);


0 commentaires