Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Backbone.js 如何按模型类别对主干集合进行分组,然后按模型等级对每个组进行排序_Backbone.js_Marionette_Backbone Views_Backbone Events - Fatal编程技术网

Backbone.js 如何按模型类别对主干集合进行分组,然后按模型等级对每个组进行排序

Backbone.js 如何按模型类别对主干集合进行分组,然后按模型等级对每个组进行排序,backbone.js,marionette,backbone-views,backbone-events,Backbone.js,Marionette,Backbone Views,Backbone Events,我正在学习David Sulc的木偶教程。 为了学习扩展它 现在让我们假设每只猫都有一个名字、等级和类别 AngryCat = Backbone.Model.extend({ urlRoot: '/api/cats', defaults: { name: "New Cat Name", category: "Red Cat" } }); 现在我想制作一个如下的复合视图: 第一类:红猫(03只猫) 第一类 第2类 第3类 第2类:蓝猫(02

我正在学习David Sulc的木偶教程。 为了学习扩展它

现在让我们假设每只猫都有一个名字、等级和类别

AngryCat = Backbone.Model.extend({
   urlRoot: '/api/cats',
   defaults: {
          name: "New Cat Name",
          category: "Red Cat"
  }
});
现在我想制作一个如下的复合视图:

第一类:红猫(03只猫)

第一类

第2类

第3类

第2类:蓝猫(02只猫)

猫X

猫Y


我怎样才能做到这一点。请帮忙

您可以使用
groupBy
功能,根据
category
属性对您的
AngryCat
模型进行分组,然后使用
sortBy
按其等级对每个组进行单独排序(我假设您的模型有一个名为
rank
的属性,该属性是一个数字)。我还假设您有一个名为
angryCats
的初始集合变量,它包含您的模型

var groups = angryCats.groupBy(function(ac) {
    return ac.get("category");
});

groups.each(function(group, key) {

     // This will output the category name & item count
     console.log(key + " " + group.length + " items"); 

     group.sortBy(function (model) {
         return model.get("rank");
     });

     group.each(function(model) {
         // This will output the model name
         console.log(model.get("name")); 
     });

});
此外,如果您希望按照模型的字符串属性(例如
name
属性)对每个组进行排序,则需要从每个组中创建一个新的局部范围
angryCats
集合(这些组是数组),然后按照链接的问题大纲对每个集合进行排序


希望这对您有所帮助

您可以使用
groupBy
功能将您的
AngryCat
模型按其by
category
属性分组,然后使用
sortBy
按其等级对每个组进行单独排序(我假设您的模型有一个名为
rank
的属性,这是一个数字)。我还假设您有一个名为
angryCats
的初始集合变量,它包含您的模型

var groups = angryCats.groupBy(function(ac) {
    return ac.get("category");
});

groups.each(function(group, key) {

     // This will output the category name & item count
     console.log(key + " " + group.length + " items"); 

     group.sortBy(function (model) {
         return model.get("rank");
     });

     group.each(function(model) {
         // This will output the model name
         console.log(model.get("name")); 
     });

});
此外,如果您希望按照模型的字符串属性(例如
name
属性)对每个组进行排序,则需要从每个组中创建一个新的局部范围
angryCats
集合(这些组是数组),然后按照链接的问题大纲对每个集合进行排序


希望这对您有所帮助

您可以通过将dcarson的代码与我在嵌套视图上的博客文章相结合来实现您的目标:


您需要向复合视图提供组的集合。复合视图的项目视图将是一个集合视图,显示该组中的CAT(即链接博客文章中的内容)。

通过将dcarson的代码与嵌套视图中的我的博客文章相结合,您可能可以实现您的目标:


您需要向复合视图提供组的集合。复合视图的项目视图将是一个集合视图,显示该组中的猫(即在链接的博客文章中所做的事情)。

您的排名是一个数字吗?是的,它是一个数字。你把我的问题完全改成了你想回答的方式。我的意思是我想从中创建一个木偶复合视图。现在我该如何渲染?或者,该视图将如何显示。我知道主干网的分组方法,我想询问如何在前端更多地使用它。顺便说一句,我的问题从来不涉及等级。我的意思是,我从来不知道如何根据等级进行分类。我改变了问题,因为我认为这是你想问的问题。你的问题很难理解,它的标题表明你希望能够分组和排序。你没有给出木偶代码作为你尝试的例子,所以我根据你所说的来解释这个问题。也许您可以用代码示例打开另一个专门关注木偶复合视图的问题?您的排名是一个数字吗?是的,它是一个数字。你把我的问题完全改成了你想回答的方式。我的意思是我想从中创建一个木偶复合视图。现在我该如何渲染?或者,该视图将如何显示。我知道主干网的分组方法,我想询问如何在前端更多地使用它。顺便说一句,我的问题从来不涉及等级。我的意思是,我从来不知道如何根据等级进行分类。我改变了问题,因为我认为这是你想问的问题。你的问题很难理解,它的标题表明你希望能够分组和排序。你没有给出木偶代码作为你尝试的例子,所以我根据你所说的来解释这个问题。也许你们可以用代码示例来回答另一个关于木偶复合视图的问题?我想网站已经关闭了。很抱歉,它应该是备份的。若并没有,请在几小时后重试(DNS问题,可能需要传播)。我认为该站点已关闭。很抱歉,它应该已备份。如果没有,请在几小时后重试(DNS问题,可能需要传播)。