2012-10-19 3 views
0

J'essaye de construire une collection, mais j'ai besoin de la construire de manière dynamique car je ne sais pas combien il faut pousser. Actuellement ce que je fais est;Collection Backbone Pousser avec une boucle

var DataCollection = Backbone.Collection.extend({ 
      model : dataModel 
     }); 

     var dataModel = Backbone.Model.extend({ 
      defaults : { 
       dataID : 'unknown', 
       text : 'unknown', 

      } 
     }); 


     var linkPrev = new dataModel({ dataID: "Prev", text: "Prev" }); 
     var link1 = new dataModel({ dataID: "1", text: "1" }); 
     var link2 = new dataModel({ dataID: "2", text: "2" }); 
     var link3 = new dataModel({ dataID: "3", text: "3" }); 
     var linkNext = new dataModel({ dataID: "Next", text: "Next" }); 

     var myDataCollection = new DataCollection(); 
     //myDataCollection.push(linkPrev); 
     myDataCollection.push(link1); 
     myDataCollection.push(link2); 
     myDataCollection.push(link3); 
     myDataCollection.push(linkNext); 

Au lieu de dire manuellement

link1 = new dataModel({ dataID: "1", text: "1" }); 
myDataCollection.push(link1); 

puis-je créer la liste de cette dynamique ..

Par exemple, si j'ai 4 liens, je veux link4 à ajouter avec Dataid: 4 , TextID: 4 ... etc ...

Répondre

2

Si vous devez remplir la collection lors de l'initialisation, vous pouvez simplement passer un tableau d'objets à remplir, il n'est pas nécessaire de créer un modèle pour chaque objet, Backbon e.collection le fera pour vous:

var DataCollection = Backbone.Collection.extend({ 
    model : DataModel 
}); 

var DataModel = Backbone.Model.extend({ 
    defaults : { 
     dataID : 'unknown', 
     text : 'unknown' 
    } 
}); 

var myDataCollection = new DataCollection([ 
    { dataID: "Prev", text: "Prev" }, 
    { dataID: "1", text: "1" }, 
    { dataID: "2", text: "2" }, 
    { dataID: "3", text: "3" }, 
    { dataID: "Next", text: "Next" } 
]); 
+0

merci ...... – myTD

Questions connexes