0
即時學習BackboneJs使用文檔和一本名爲「Beginning backbone」的書。 但我一直堅持排序收集部分數小時。 還試圖研究,但我覺得複雜的結果=/如何對主幹中的集合進行排序
我知道我必須使用比較,如在文檔中,但我不知道如何將它應用到當前的代碼語法明智
http://backbonejs.org/#Collection-comparator
var Book = Backbone.Model.extend({
defaults:
{
title: "default title",
author: "default author",
pages: 20
},
comparator: function(item)
{
//sort by title
return item.get('title');
}
});
var book1 = new Book({ title:"Book of wonders",author:"author1",pages:1 });
var book2 = new Book({ title:"Zelda",author:"author2",pages:2 });
var book3 = new Book({ title: "Drake's out", author: "author3",pages:3});
var book4 = new Book({ title: "AutoCad",author: "author4",pages: 4});
var Library = Backbone.Collection.extend({
model: Book
});
var library = new Library([book1,book2]);
library.add([book3,book4]);
library.forEach(function(model){
console.log('Book is called '+model.get("title"));
});
console.log('Library contains '+library.length+' books');
你錯過了'a.get(「標題」)== b.get(「標題」)'在這種情況下,你的'比較器'應該返回零,因爲它最終會使用標準的['Array.prototype.sort'](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort)方法。 –
我必須把它放在比較器的第一行嗎? – user254883
你只需要覆蓋三種情況:'a_title == b_title','a_title b_title';那些應該分別返回0,-1和1。無論你想要的條件安排條件。 –