2013-10-31 65 views
1

請看看這段代碼:,以收集模型原始訪問,

var MyView = Backbone.View.extend({ 
    el: '#container', 

    render: function() { 
     var html = ''; 
/*  _.each(this.collection.models,function(model,index,list) { 
      var item_html = 'FirstName: ' + model.get('firstName'); 
      html += item_html + '<br />'; 
     });*/ 
     html = this.collection.models.model.get('firstName'); 
     $(this.el).html(html); 
    } 
}); 

此代碼:「this.collection.models」可以訪問model.get(「的firstName」)在_.each使用時循環(註釋掉)。 但是,當我嘗試訪問model.get通過相同的代碼「this.collection.models」,但在循環外部它不會工作。 我的問題是如何從與該視圖關聯的模型中訪問對象的'firstName'屬性,並在循環之外使用原始(?)訪問?我知道這不會迭代,但我只想學習如何訪問第一個實例「firstName」。

回答

2

在_.each循環中,'model'參數被傳遞給您指定的回調函數。在循環之外,你沒有相同的結構。訪問集合中的模型有幾種方法,但取決於您想要訪問的模型。你可以,如果你想要,訪問模型數組中的第一個使用索引:

this.collection.models[0].get('firstName'); 

但也有提供給您的其他方法來做到這一點,如得到這需要一個id:

this.collection.get(123); 

或者,這需要一個索引:

this.collection.at(0); 

所以這真的取決於你想在哪一個。

+0

傑出的答案。有很多方法可以完成這麼多的事情,多虧了幾種方式。 – Benj