繁体   English   中英

集合视图内的ribs.js集合视图

[英]backbone.js collection view inside collection view

我有一个带有列的条目表(=集合)- 活动,名称,费率,小时

现在活动是一个带有选项(=另一个集合?)的选择框,此外,还应从当前所选选项的属性中复制费率。

如何将这些选项注入(?)到第一个集合的模板中? 尤其是在渲染第一个集合时,需要其他集合(比率)的属性。

我也不想每个都包含在内,因为这些选项始终相同,并且可以稍后使用javascript设置所选参数。

//编辑实际上不用介意从selectbox复制费率的需求,在开始尝试将其转换为骨干之前,我必须这样做,

另一方面,我仍然需要更改。

您可以尝试以下方法。 对于您的目标,我仍然不是100%,但是我有一种感觉,您正在尝试以比必要的复杂得多的角度解决问题。

视图:

var EntryView = Backbone.View.extend({
  /** Get the values from the view elements. */
  serialize: function() {
    return {
      activity: this.$('.activity :selected').val(),
      person: this.$('.person :selected').val(),
      budget: this.$('.budget').val()
    }
  },
  events:{
      'change .test': 'changeActivity'
    },
  changeActivity: function(ev) {
     /** Event is triggered when any of the select element changes. */
     var entry = this.serialize();
     console.log(entry);
  }, ...

在您的模板上,我在每个元素上添加了一个额外的类,以将它们彼此区分开。

模板:

<script type="text/template" id="tpl_entries">
<% _.each(entries, function(entry) { %>
   <tr>
    <td>
    <select class="activity test">                              
       <% _.each(activities, function(activity) { %>                                
          <option><%= activity.get('name') %></option>
       <% }); %>
    </select>
    </td>
        <td>
    <select class="person test">
      <% _.each(people, function(person) { %>
           <option><%= person.get('name') %></option>
      <% }); %>
    </select>
    </td>
        <td>
<div class="input-append">
    <input class="budget input-small" type="text" 
                   value="<%= entry.get('budgeted') %>" /> ...

希望这可以帮助并引导您朝正确的方向发展。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM