如何使用Backbone集合创建表视图

时间:2013-08-29 08:00:41

标签: backbone.js backbone-views backbone-events

目前我有一个骨干代码,如下面的

app.View.FriendRequestListViewModal = Backbone.View.extend( {
template: _.template($('#friend-request-list-modal').html()),

tagName: 'div',

initialize: function(){
   this.render();
},

render: function() {
    $(this.el).html(this.template({
        friendRequestCollection: this.collection}));
    return $(this.el);
},
});

并且我有一个像

这样的模板
<script type="text/template" id="friend-request-list-modal">
<table class="table table-hover">
        <@ friendRequestCollection.each(function(user) { @>
            <tr id="<@= user.get('username') @>">
               <td>
                 <img class="pull-left avatar" src="/img/staff_avatar_profile.jpg"
               </td>
               <td>
                 <a href="/tatami/profile/<@= user.username @>/"><@= user.get('firstName')  @>&nbsp;<@= user.get('lastName')  @></a>
               </td>
               <td>
                     <div class="btn-group">
                       <a class="btn dropdown-toggle" data-toggle="dropdown" href="#"><fmt:message key="user.request.action"/>
                         <span class="caret"></span>
                      </a>
                        <ul class="dropdown-menu">
                           <li><a href="#"><i class="icon-ok"></i><fmt:message key="user.add.accept.request"/></a></li>
                           <li><a href="#"><i class="icon-remove"></i><fmt:message key="user.add.reject.request"/></a></li>
                       </ul>
                     </div>
               </td>
             </tr>
        <@ }); @>
       </table>
     </script>

但是现在我想用骨干创建相同的表,因为我在这个表中有两个按钮,它们有以下模型,我想用骨干包含这些模型。如果您使用模板创建按钮,我认为我将无法将这些模型附加到这些按钮。有没有人有任何建议..

app.Model.FriendRequestAcceptModel = Backbone.Model.extend({
url : function(){
  return '/rest/friend/accept';
}
});

app.Model.FriendRequestCancelModel = Backbone.Model.extend({
url : function(){
  return '/rest/friend/reject';
}
});

1 个答案:

答案 0 :(得分:0)

多数人使用类似this(与here相同),但我更喜欢这样做:我制作单独的两个模板,首先,我将首先渲染,之后将使用集合调用第二个,并将第二个模板的结果添加到第一个。