Sagen wir, meine Vorlage wie folgt aussieht:Backbone - Holen Sie sich ein bestimmtes Modell aus einer Sammlung, die in einer Vorlage iteriert
<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>
Das Modell und die Sammlung:
var Item = Backbone.Model.extend({
defaults: {
id: null,
name: '',
description: ''
}
});
var ItemCollection = Backbone.Collection.extend({
model: Item,
url: function() {
return '/items';
}
});
Und im Blick Ich hole einfach die Artikel und zeige sie an:
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);
}
});
Jedes Element mit seinen Feldern in der Vorlage hat eine eigene Schaltfläche.
Im Moment muss ich eine Funktionalität hinzufügen, die ausgelöst wird, wenn die Schaltfläche in der Vorlage gedrückt wird, also beim Klicken auf eine Funktion muss das Element, das mit der Schaltfläche in der Vorlage verknüpft ist.
Wie kann ich das tun?
'id' Attribute müssen eindeutig sein, oder Sie haben keine Gültigkeit HTML. Fix das zuerst und dann etwas Zeit mit dem [feinen Handbuch] (http://backbonejs.org/#View-events). –
Mögliches Duplikat von [Modell anklicken und zu einer anderen Sammlung im Backbone hinzufügen] (http://stackoverflow.com/questions/9885341/get-clicked-model-and-add-to-other-collection-in-backbone) –