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”在 _.each 循环(已注释掉)中使用时提供对 model.get('firstName') 的访问权限。但是当我尝试通过相同的代码“this.collection.models”访问model.get但在循环之外它不会工作。我的问题是如何从与该视图关联的模型中访问对象的“firstName”属性,并在循环外使用原始(?)访问?我知道这不会迭代,但我只想学习如何访问第一个实例“firstName”。

4

1 回答 1

2

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

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

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

this.collection.get(123);

或 at,它需要一个索引:

this.collection.at(0);

所以这真的取决于你想去哪一个。

于 2013-10-31T17:23:10.407 回答