回答
我想我找到了一個方法:
collection.reset(collection.sortBy(function(item){
return item.get(sortingFIeld);
}))
凡sortBy返回作爲參數復位通過了新的,分類排列。 SortingField是模型的字符串屬性。
他特別表示他不想使用重置。現在他編輯出來了:P不是你的錯。 – 2012-08-08 18:39:29
我是我雖然哈哈。我編輯了這個,因爲那一刻我就能想到這個解決方案。 – chenglou 2012-08-08 18:42:42
你能擴展你的答案嗎?我正在處理同樣的事情,並想知道在哪裏指定要排序的屬性(標題或日期)。 – CamelBlues 2012-08-08 22:05:14
您可能需要看看the answer here,這裏是該職位所提供的解決方案:
comparator: function(item) {
return [item.get("level"), item.get("title")]
}
它可以實現更多的邏輯到比較器,這樣就可以抽象掉一些排序邏輯的:
var Collection = Backbone.Collection.extend({
model: myModel,
order: 'name'
comparator: function(model) {
if (this.order === 'name') {
return model.get('name');
} else {
return model.get('date'); //or modify date into a numeric value
}
}
});
然後改變你想要的排序:
myCollection.order = 'date';
myCollection.sort();
這將調用比較器功能並按此方式對其進行排序。
你可以聆聽到一個視圖再整理:
this.listenTo(myCollection,'sort',this.render);
這有一個好處,每次添加一種模式時,它會調用比較器和使用任何你目前的設置是排序的,因爲排序方法存儲在集合中。
+1這個答案。選項是你如何在你的應用程序之間傳遞函數所需的信息。 – Throttlehead 2013-11-25 17:50:11
- 1. 使用Backbone.js排序集合
- 2. 是否對Backbone.js集合進行排序?
- 3. Backbone.js的集合,並與
- 4. Backbone.js模型與集合
- 5. Backbone.js的集合捆綁這種混亂
- 6. Backbone.js集合保留新的排序順序?
- 7. Backbone.js集合
- 8. Backbone.js的集合
- 9. Backbone.js Bootstrapping集合:多少錢太多?
- 10. backbone.js集合和多種類型的模型?
- 11. 集合排序
- 12. 合併排序有多少種變化?
- 13. 合併排序多種類型
- 14. 使用模型篩選/排序集合中的Backbone.js的
- 15. Backbone.js自定義收集排序
- 16. Backbone.js集合選項
- 17. backbone.js迭代集合
- 18. backbone.js清空集合
- 19. Backbone.js驗證集合
- 20. 篩選Backbone.js集合
- 21. Backbone.js分類集合
- 22. backbone.js集合使用
- 23. 瞭解backbone.js集合
- 24. Backbone.js - 跨多條路線共享集合
- 25. 結合兩個集合backbone.js
- 26. Backbone.js - 模型URL與集合URL
- 27. 渲染Backbone.js的集合與模板
- 28. 與「本」在Backbone.js的時候集合中
- 29. XSL多種排序
- 30. MongoDb多種排序
我可以問爲什麼你不想重置集合?出於這個確切原因,重置觸發器(針對視圖)。即當您的排序通過重置進行更改時,您的視圖將重新呈現。 – 2012-08-08 18:39:05
你說得對,我認爲重新設定整個系列沒有任何缺點。謝謝。 – chenglou 2012-08-08 18:44:07
當數據發生變化時,對集合進行「重置」是很正常的事情,對於整個集合,即使它是相同的數據但是順序不同 – 2012-08-08 18:50:09