请看这段代码:
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”在_.each循环(注释掉)中使用时,可以访问model.get('firstName')。 但是当我尝试通过相同的代码“this.collection.models”访问model.get但是在循环之外它将无法工作。 我的问题是如何从与该视图关联的模型访问对象的'firstName'属性,在循环之外使用原始(?)访问?我知道这不会迭代,但我只是想学习如何访问第一个实例“firstName”。
答案 0 :(得分:2)
在_.each循环中,'model'参数被传递给你指定的回调函数。在循环之外,您没有相同的结构。有几种方法可以访问集合中的模型,但这取决于您要访问哪个模型。如果需要,您可以使用索引访问models数组中的第一个:
this.collection.models[0].get('firstName');
但是还提供了其他方法来执行此操作,例如get取一个id:
this.collection.get(123);
或at,取一个索引:
this.collection.at(0);
所以这真的取决于你想要得到哪一个。