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' 属性にアクセスする方法です。ループの外で raw(?) アクセスを使用しますか? これが繰り返されないことはわかっていますが、最初のインスタンス「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 に答える