碰到同樣的問題學習spine.js。我使用純JS,所以我忽略了這個幫助的聯繫示例http://spinejs.com/docs/example_contacts。事實上,您無法通過這種方式真正保持服務器的排序,但是您可以使用javascript自行完成訂購。
請注意,我在這裏使用元素圖案。 (http://spinejs.com/docs/controller_patterns)
首先你設置這該怎麼辦模型內部排序功能:
/*Extending the Student Model*/
Student.extend({
nameSort: function(a,b) {
if ((a.name || a.email) > (b.name || b.email))
return 1;
else
return -1
}
});
然後,在學生控制器設置使用的元素排序:
/*Controller that manages the students*/
var Students = Spine.Controller.sub({
/*code ommited for simplicity*/
addOne: function(student){
var item = new StudentItem({item: student});
this.append(item.render());
},
addAll: function(){
var sortedByName = Student.all().sort(Student.nameSort);
var _self = this;
$.each(sortedByName, function(){_self.addOne(this)});
},
});
而就是這樣。
現在我想通過使用JavaScript的Array.sort() – irium
http://groups.google.com/group/spinejs/browse_thread/thread/857e463e93f5bf2c – abernier