Скажет, мой шаблон выглядит следующим образом:Backbone - получить определенную модель из коллекции, итерированная в шаблоне
<script type="text/template" id="template">
{{#each []}}
<div>{{this.id}}</div>
<div>{{this.name}}</div>
<div>{{this.description}}</div>
<input id="my-btn" type="button">Button</input>
{{/each}}
</script>
модель и коллекция:
var Item = Backbone.Model.extend({
defaults: {
id: null,
name: '',
description: ''
}
});
var ItemCollection = Backbone.Collection.extend({
model: Item,
url: function() {
return '/items';
}
});
И в представлении Я просто забираю предметы и показываю их:
var ItemsView = Backbone.View.extend({
el: $('#items'),
template: Handlebars.compile($('#template').html()),
items: new ItemCollection(),
initialize: function() {
var self = this;
this.items.fetch({success: function() {
self.render();
}});
},
render: function() {
var items = new ItemCollection();
var html = this.template(items.toJSON());
this.$el.html(html);
}
});
Каждый элемент с его полями в шаблоне имеет свою собственную кнопку.
Прямо сейчас мне нужно добавить функциональность, которая будет срабатывать при нажатии кнопки в шаблоне, поэтому нажмите кнопку, чтобы какая-то функция должна была получить элемент, связанный с кнопкой в шаблоне.
Как я могу это сделать?
'id' атрибуты должны быть уникальными или не имеют действительного HTML. Исправьте это сначала, а затем потратите некоторое время на [точное руководство] (http://backbonejs.org/#View-events). –
Возможный дубликат [получить щелчок модели и добавить к другой коллекции в позвоночник] (http://stackoverflow.com/questions/9885341/get-clicked-model-and-add-to-other-collection-in-backbone) –