这是你可以尝试的东西。我的目标仍然不是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') %>" /> ...
希望这有助于,导致你在正确的方向。
你试过了什么?你能提供一个jsfiddle或equiv吗?鉴于您提供的信息量很少,因此很难理解您要查找的内容。 – WiredPrairie 2013-03-12 12:02:46
@WiredPrairie我到目前为止已经决定将所有数据传递给一个视图,但我不确定这是否正确,也不知道我是否真的不需要我所要求的。无论如何,这里的jsbin http://jsbin.com/igajer/1 我想要的是有一个separeted视图的activitiesCollection和peopleCollection,并没有_.each活动/内部人员_.each条目 – foxx 2013-03-12 12:41:42
下划线有你可以使用的模板 – 2013-03-12 13:19:38