1

私のコレクションはいくつかのレコードをフェッチし、そこから上位10レコードのみを表示する必要があります。やってみた

   this.collection.each(function(){
        if (count == 10) break;
        //pass model to view
   });

残念ながら、 breakはunderscore.jsのeach()APIでは機能しません。ここを参照してください:underscore.jsの_.each関数を壊す方法

コレクションからトップ10のみを抽出するフィルターを作成するにはどうすればよいですか?

     this.collection.filter();

更新:collection.first(10)がフィルターされたリストを取得しました。ただし、コレクションアイテムを処理するには、.each()をこのコレクションにチェーンする必要がありました。collection.first()はチェーンを許可しません。これに対する解決策については、私の選択した回答を参照してください。

4

1 に答える 1

7

例えば

this.collection.first(10)

次に、各モデルで作業する必要がある場合、例:

    var collection = new Backbone.Collection([{id:1}, {id:2}, {id:3}, {id:4}, {id:5}],{model: Backbone.Model});

    var newCollection = new Backbone.Collection(collection.first(2));

    newCollection.each(function(model){
      alert(JSON.stringify(model.toJSON()));
    });

jsfiddleを参照してください。このトピックで述べたように、アンダースコアチェーンメソッドを使用してそれを行う別の方法があることに注意してください。

バックボーンドキュメントアンダースコアドキュメントをご覧ください。

于 2012-08-09T19:52:57.887 に答える