我有一个条目表(=集合),其中包含列 -活动、名称、费率、小时数
现在活动是一个带有选项的选择框(=另一个集合?),此外,应该从当前选定选项的属性中复制速率。
如何将这些选项注入(?)第一个集合的模板?特别是当第一个集合的渲染需要来自另一个集合的属性(速率)时。
我也不想在每个里面都有每个,因为这些选项总是相同的,并且可以稍后使用 javascript 设置所选参数。
// 编辑实际上并不介意从选择框复制费率的需要,在我开始尝试将其转换为主干之前,我必须这样做
另一方面,我仍然需要它来改变..
我有一个条目表(=集合),其中包含列 -活动、名称、费率、小时数
现在活动是一个带有选项的选择框(=另一个集合?),此外,应该从当前选定选项的属性中复制速率。
如何将这些选项注入(?)第一个集合的模板?特别是当第一个集合的渲染需要来自另一个集合的属性(速率)时。
我也不想在每个里面都有每个,因为这些选项总是相同的,并且可以稍后使用 javascript 设置所选参数。
// 编辑实际上并不介意从选择框复制费率的需要,在我开始尝试将其转换为主干之前,我必须这样做
另一方面,我仍然需要它来改变..
这是您可以尝试的东西。我仍然不是 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') %>" /> ...
希望这有助于并引导您朝着正确的方向前进。