对集合模型的原始访问,

时间:2013-10-31 17:16:51

标签: backbone.js

请看这段代码:

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”。

1 个答案:

答案 0 :(得分:2)

在_.each循环中,'model'参数被传递给你指定的回调函数。在循环之外,您没有相同的结构。有几种方法可以访问集合中的模型,但这取决于您要访问哪个模型。如果需要,您可以使用索引访问models数组中的第一个:

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

但是还提供了其他方法来执行此操作,例如get取一个id:

this.collection.get(123);

或at,取一个索引:

this.collection.at(0);

所以这真的取决于你想要得到哪一个。