2016-03-24 37 views
1

Bir backbone.js koleksiyonundan görünüm doldururken sorunlarla karşılaşıyorum. İşteBir backbone.js görünümünü yerleştiremiyorum

<script type="text/template" id="item-template">    
       <div style="float:left;min-height: 200px;min-width: 50%;"> 
        <div style="float:left;"> 
         <h4>Totals for the day: <%- logdate %></h4> 

         <p><strong>Total Calories:</strong> <span><%- calories %></span></p> 
         <p><strong>Total Protein:</strong> <span><%- protein %></span></p> 
         <p><strong>Total Carbohydrates:</strong> <span><%- carbs %></span></p> 
         <p><strong>Total Fat:</strong> <span><%- fat %></span></p> 
         <p><strong>Total Sugar:</strong> <span><%- sugar %></span></p> 

        </div> 
        <div style="float:right;min-height: 200px;min-width: 50%;"> 

        </div> 
        <div style="width: 100%;clear: both;"> 
         <hr> 
        </div>     
       </div>    
       </script> 

benim js kod snippet'leridir: ReferenceError: logdate tanımlı değil

//the model and collection 
var LogEntry = Backbone.Model.extend({ 
    defaults: { 
     title: 0, 
     logdate: '', 
     calories: 0, 
     fat: 0, 
     carbs: 0, 
     protein: 0, 
     sugar: 0, 
     content: {} 
    }, 
    initialize: function() { 
     /*if (!this.get("title")) { 
     this.set({"title": this.defaults().title}); 
     }*/ 
    } 
}); 

var FoodJournalCollection = Backbone.Collection.extend({ 
    model: LogEntry, 
    localStorage: new Backbone.LocalStorage("foodjournal") 
}); 

//setting the body, template, collection variables 
el: 'body',  
template: _.template($('#item-template').html()) 
this.journalCollection = new FoodJournalCollection(); 

//I'm trying to retrieve the the collection and populate the view 
this.journalCollection.fetch(); 
this.$el.html(this.template(this.journalCollection.toJSON())); 

Bu alıyorum hatadır İşte

benim görünümdür
+0

Paylaştığınız kod eksik ... Sadece sözdizimi hatalarını atıyor ... Lütfen soruları doğru kodla gönderin ... –

cevap

3

this.journalCollection.toJSON(), bir dizi modele giderir.

yerine bunu edilmelidir: Şablonunuzdaki sonra

this.$el.html(this.template({ 
    models: this.journalCollection.toJSON() 
})); 

ve: Model bilgilerin tümünü yazdırır

<script type="text/template" id="item-template"> 
    <% for(var model in models){ %> 
     // All your HTML ... <%- models[model].calories %> ... etc 
    <% } %> 
</script> 

tanımladığınız şablonu kullanarak.

+0

koleksiyona daha iyi bir ad verin ... Koleksiyondaki 'modelde model' –

+0

doğru şekilde döngü yapıyor . Ancak, değerler görüntülenmiyor. <% - model.logdate%> ve <% = model.logdate%> olarak denedim. Neyi yanlış yapıyorum? Teşekkürler! –

+0

Nevermind, bunu çözdüm. <% = modeller [model] .logdate%> –