【发布时间】:2015-02-10 17:06:35
【问题描述】:
我无法正确排序 Backbone 集合。我继承了这个项目,所以在其他地方可能会有一些恶作剧,但我想排除任何语法错误。
项目使用 JSON 文件处理数据:
"classifications": [
{
"name": "1 Bedroom",
"alias": "1BR",
"id": "1BR",
"menu_desc": "Residences"
},
{
"name": "2 Bedroom",
"alias": "2BR",
"id": "2BR",
"menu_desc": "Residences"
},
{
"name": "3 Bedroom",
"alias": "3BR",
"id": "3BR",
"menu_desc": "Residences"
},
{
"name": "4 Bedroom",
"alias": "4BR",
"id": "4BR",
"menu_desc": "Residences"
},
{
"name": "Common Areas",
"alias": "Common",
"id": "Common",
"menu_desc": "Resident Amenities"
}
]
之前没有一居室单元,渲染顺序是这样的:
我添加了一居室的分类,突然顺序是这样的:
我做了一些挖掘并找到了有关比较器属性的文档,但它似乎只适用于集合。该项目不使用集合进行分类。它适用于子菜单项(单位所在的楼层等),但不适用于主菜单:
var MenuClassificationListView = Backbone.View.extend({
id: "classification_accordion",
template: _.template( "<% var classifications = this.options.classifications; _.each(this.collection.attributes, function(v,k) { %>"+
"<h3 class='<%= k %>'><%= classifications.get(k).get('name') %>"+
"<p><%=classifications.get(k).get('menu_desc')%></p></h3>"+
"<% var model = new MenuClassificationList(v); var view = new MenuClassificationItemView({collection:model, classification:k}); %>"+
"<% print(view.render().el.outerHTML); %>"+
"<% }); "+
"%>"),
render: function(){
//console.log(this.options.classifications);
//console.log(this.collection.attributes);
//alert(1);
this.$el.html(this.template());
return this;
}
});
如何合并比较器?
谢谢,
ty
【问题讨论】:
标签: javascript sorting backbone.js backbone-views comparator