2012-02-03 1 views
0

J'ai 4 collections qui devraient être remplies avec des données du serveur!Fetch vs Réinitialiser comment l'utiliser correctement avec Backbone.js

Mon JSON est un emboîtés l'un:

[ "data1":[...], "data2": [...], "data3": [...], "data4": [...] ]

et j'ai besoin pour toutes les collections de données différentes d'un.

  1. j'ai commencé à utiliser Fetch, mais il alla chercher pour tous l'ensemble des collections JSON avant de choisir les données réelles nécessaires.

  2. Lorsque j'utilise reset certaines fois, les collections sont remplies de données certaines fois non!

    var pack = []; 
    var Coll1 = new ClefsButtonsCollection(); 
    var Coll2 = new AccidentalsButtonsCollection(); 
    var Coll3 = new NotesButtonsCollection(); 
    var Coll4 = new RestsButtonsCollection(); 
    $.getJSON("/api/data.json", function(data){ 
        Coll1.reset(data.data1); 
        Coll2.reset(data.data2); 
        Coll3.reset(data.data3); 
        Coll4.reset(data.data4); 
    }); 
    pack.push(Coll1, Coll2, Coll3, Coll4); 
    

Comment puis-je rempli ma collection avant que le Dom chargé? J'utilise require.js

Répondre

0

La réponse courte est, vous ne pouvez pas. Comme vous devez gérer la nature asynchrone de JavaScript, vous ne pouvez pas être certain qu'un rappel a été effectué avant un autre. La seule façon que je vois est de ne pas appeler l'API mais de rendre le résultat JSON directement dans votre page html, comme décrit dans backbone FAQ.

Questions connexes