2012-10-17 34 views
4

我有一個下拉框,這將改變收集的物品被顯示在頁面上的數...骨幹 - 限制項目數,以顯示在收藏

{{#each myCollection}} 
<div id="{{this.Name}}">{{this.Name}} </div> 
{/each}} 
<select id="ddpFilter" > 
<option value="10">Show 10</option> 
<option value="50">Show 50</option> 
</select> 
+1

你可以把它放在一個for循環,然後使用this.collection.at(loopIndex)來獲得模型。 – jongbanaag

+1

只是限制您發送到模板的項目數量。不要發送整個集合。 –

+0

謝謝你的回覆..我想我得到它... 渲染方法將顯示整個20個項目...當我選擇顯示10個項目時,我將更新集合,但只發送10個項目..如何我是否在飛行中這樣做?我知道有聽衆的方法? – myTD

回答

4

退房的first()下劃線方法baked into Backbone Collections。這裏有一個如何,你可能會與你的模板結合first()一個例子:

Backbone.View.extend({ 

    // Number of items to show from the collection. Set this and re-render when you 
    // want to show 50. 
    limit: 10, 

    // Notice I switched myCollection to items. Backbone collections aren't directly 
    // iterable, but their underscore methods (like first(n)) return vanilla 
    // iterable Arrays 
    template: Handlebars.compile("{{#each items}} {{this.Name}} {/each}}"), 

    render: function() { 
    this.$el.html(this.template({ 
     // Pass a truncated Array into the template to keep it logicless and Mustachy 
     items: myCollection.first(this.limit) 
    })); 
    } 
}); 
+0

謝謝,它工作完美 – myTD