2013-03-12 88 views
0

我有项与列的表格(=集合) - 活动,名,速度,时间Backbone.js的集合视图

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

如何将(?)这些选项注入第一个集合的模板?特别是当第一个集合的渲染需要来自其他集合(速率)的属性时。

我也不希望每个都在每个内部,因为这些选项总是相同的,所选参数可以稍后用javascript设置。

//编辑 其实心中永远的需要复制从选择框的价格,我不得不做这样之前,我开始尝试将其转换为骨干

,另一方面,我还是会需要它在变..

+0

你试过了什么?你能提供一个jsfiddle或equiv吗?鉴于您提供的信息量很少,因此很难理解您要查找的内容。 – WiredPrairie 2013-03-12 12:02:46

+0

@WiredPrairie我到目前为止已经决定将所有数据传递给一个视图,但我不确定这是否正确,也不知道我是否真的不需要我所要求的。无论如何,这里的jsbin http://jsbin.com/igajer/1 我想要的是有一个separeted视图的activitiesCollection和peopleCollection,并没有_.each活动/内部人员_.each条目 – foxx 2013-03-12 12:41:42

+0

下划线有你可以使用的模板 – 2013-03-12 13:19:38

回答

0

这是你可以尝试的东西。我的目标仍然不是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') %>" /> ... 

希望这有助于,导致你在正确的方向。

+0

老实说,我不确定我的目标是什么,我的问题是绝对缺乏骨干工作原理的结果。不管怎么说,还是要谢谢你! – foxx 2013-03-13 16:11:16