Javascript 将具有相同属性的模型嵌套到div中的最简单方法?

Javascript 将具有相同属性的模型嵌套到div中的最简单方法?,javascript,backbone.js,Javascript,Backbone.js,这比世界上任何事情都让我困惑。我只想打印html,将具有相同定义属性的所有模型分组/嵌套/组合到一个div中,然后继续我的生活 <div> <div>I have an attribute of red so I am here</div> <div>I too have an attribute of red so I am here</div> </div> <div> <div

这比世界上任何事情都让我困惑。我只想打印html,将具有相同定义属性的所有模型分组/嵌套/组合到一个div中,然后继续我的生活

<div>
    <div>I have an attribute of red so I am here</div>
    <div>I too have an attribute of red so I am here</div>
</div>
<div>
    <div>Well I have an attribute of blue so I am here</div>
    <div>I have an attribute of blue so I am here as well</div>
</div>
好的,让我在模板中使用这个

<script id="appTemplate" type="text/template">
<a href="#/new_player" class="btn btn-primary">Add Player</a>
<table class="table table-bordered">
    <thead>
      <tr>
        <th>First Name</th>
        <th>Last Name</th>
        <th>Team</th>
      </tr>
    </thead>
    <tbody>

    <% _.each(players, function(player) { %>    
      <tr class="<%= player.get('team') %>">
        <td><%= player.get('firstname') %></td>
        <td><%= player.get('lastname') %></td>
        <td><%= player.get('team') %></td>
      </tr>
    <% }); %>
    </tbody>
</table> 
</script>

名字
姓
团队
好的,我使用它按团队组织的
比较器得到了一个很好的列表,但是我如何嵌套每个团队呢?我真的需要编写混乱的
constructor
方法,
parse
方法吗,或者我可以重写我的json数组并从那里开始

我真的迷路了,希望有人能解释清楚。我不知道你们为什么一开始就发帖,你们通常会做出惊人的努力,我不确定这是否是为了要点,只是为了帮助别人还是什么,但我正在努力成为一名更好的程序员,真的需要克服这个障碍


我只想添加我从基础教程中学到的backbone.js,这就是为什么我讨厌这些高级主题,显然我需要学习一些更高级的书籍/教程/课程,但现在我只想弄清楚这一点

基本上,您要做的是首先对数据进行分组,您可以使用类似下划线的函数进行分组,然后对分组进行迭代。 虽然您可以在模板中完成所有工作,但首先准备数据并将其发送到模板可能会更容易、更整洁

比如说

 success: function(players) {
       var groupedPlayers = _.groupBy(players.models, function (player) {
             return player.get('team');
       });
       var template = _.template($('#appTemplate').html()
                       , {groupedPlayers: groupedPlayers});
        self.$el.html(template);
     }
使用以下模板

<% _.each(groupedPlayers, function(team, i) {   %>   
       <table class="table table-bordered">
        <thead>
          <tr>
            <th>First Name</th>
            <th>Last Name</th>
            <th>Team</>

            </tr>
        </thead>
        <tbody>
      <% _.each(team, function(player) { %>    
      <tr class="<%= player.get('team') %>">
        <td><%= player.get('firstname') %></td>
        <td><%= player.get('lastname') %></td>
        <td><%= player.get('team') %></td>
      </tr>
    <% }); %>
       </tbody>
    </table> 
<% }); %>

名字
姓
团队

基本上,您要做的是首先对数据进行分组,您可以使用类似下划线的函数进行分组,然后对分组进行迭代。 虽然您可以在模板中完成所有工作,但首先准备数据并将其发送到模板可能会更容易、更整洁

比如说

 success: function(players) {
       var groupedPlayers = _.groupBy(players.models, function (player) {
             return player.get('team');
       });
       var template = _.template($('#appTemplate').html()
                       , {groupedPlayers: groupedPlayers});
        self.$el.html(template);
     }
使用以下模板

<% _.each(groupedPlayers, function(team, i) {   %>   
       <table class="table table-bordered">
        <thead>
          <tr>
            <th>First Name</th>
            <th>Last Name</th>
            <th>Team</>

            </tr>
        </thead>
        <tbody>
      <% _.each(team, function(player) { %>    
      <tr class="<%= player.get('team') %>">
        <td><%= player.get('firstname') %></td>
        <td><%= player.get('lastname') %></td>
        <td><%= player.get('team') %></td>
      </tr>
    <% }); %>
       </tbody>
    </table> 
<% }); %>

名字
姓
团队


您是要对特定属性还是所有属性进行分组?对于特定属性,最简单的方法可能是首先使用下划线之类的内容对模型进行分组,然后在模板中迭代这些内容。。。好的,就这么简单,我会尽可能多地阅读,谢谢。。举个例子,我可以给你点建议:)我猜你的意思是一次一个,你应该能够按照我的建议去做。如果你愿意,我可以提供一个更完整的例子。那太棒了,我可以给你分数:)作为补充点如果你打算使用多个播放器视图,最好将模板的编译从回调移到视图定义中,这样,它只编译一次。您是要将特定属性分组还是将所有属性分组?对于特定属性,最简单的方法可能是首先使用下划线之类的内容对模型进行分组,然后在模板中迭代这些内容。。。好的,就这么简单,我会尽可能多地阅读,谢谢。。举个例子,我可以给你点建议:)我猜你的意思是一次一个,你应该能够按照我的建议去做。如果你愿意,我可以提供一个更完整的例子。那太棒了,我可以给你分数:)作为补充点如果你打算使用多个玩家视图,最好将模板的编译从回调中移到视图定义中,这样它只编译一次。好的,谢谢,我很感激。是否有一个特定的json格式可以使用,或者只是一个基本的ol
[{“团队”:“熊”,玩家:“Jay”},{“团队”:“布朗”,玩家:“Dan”}]
我会这么认为,因为你的成功函数与我在OP中设置我的函数是一致的。只是希望清楚无误。你提供的示例应该可以使用。我假设你已经在使用类似的东西了,那么不妨试一试。如果你被卡住了,我可以试着做一把小提琴。事实上,这部分是我的错,当你按功能调用组时,你需要在模型上做,而不是集合上。此外,如果是一个简单的组,您只需指定属性,我将立即更新我的答案。您只需在模板中的两个
函数之间添加所需的标记。我会更新它,但我不确定我是否理解您希望整个团队都在一个tr中,您是指每个团队都在自己的表格中吗?好的,看一下我更新的答案并进行修改。我将组改回使用函数,因为它似乎没有正确地分组,可能是我误读了有关传递属性的文档。好的,谢谢,我很感激。是否有一个特定的json格式可以使用,或者只是一个基本的ol
[{“团队”:“熊”,玩家:“Jay”},{“团队”:“布朗”,玩家:“Dan”}]
我会这么认为,因为你的成功函数与我在OP中设置我的函数是一致的。只是希望清楚无误。你提供的示例应该可以使用。我假设你已经在使用类似的东西了,那么不妨试一试。如果你被卡住了,我可以试着做一把小提琴。事实上,这部分是我的错,当你按功能调用组时,你需要在模型上做,而不是集合上。此外,如果是一个简单的组,您只需指定属性,我将立即更新我的答案。您只需在模板中的两个
函数之间添加所需的标记。我会更新的,但我不知道你想怎么做