イベントを発生させることができないようです。
複数のビューと単一のビューは次のとおりです。
独身:
PartyView = Backbone.View.extend({
tagName: 'span',
className: 'aParty',
senderTemplate: _.template($('#senderTemplate').html()),
recipientTemplate: _.template($('#recipientTemplate').html()),
render: function () {
if (this.model.get("isSender")=="1")
$("#senders").append(this.senderTemplate(this.model.toJSON()))
else
$("#recipients").append(this.recipientTemplate(this.model.toJSON()))
},
events: {
"click .delete":"deleteParty",
'click #recipients': "sayhi"
},
sayhi : function () { console.log ("hi"); },
deleteParty:function () {
this.model.destroy();
this.remove();
}
})
多数:
PartiesView = Backbone.View.extend({
className: "partiesView",
senderTemplate: _.template($('#senderTemplate').html()),
recipientTemplate: _.template($('#recipientTemplate').html()),
render: function(eventName) {
$("#senders").empty();
$("#recipients").empty();
_.each(this.model.models, function(party){
var partyview = new PartyView ({ model: party })
partyview.render();
}, this);
return this;
},
events : {
'click #recipients': "sayhi"
},
sayhi : function () { console.log ("hi"); }
});
コンソール エラーは発生せず、すべて正常にレンダリングされます。sayhi または delete イベントを発生させることはできません。テンプレートでイベントが失われることに最も密接に関連していると思われますが、実際には何時間もそれを理解しようとしています. 任意のガイダンスをいただければ幸いです!!
編集1:
テンプレートは次のとおりです。
<script type='text/template' id='senderTemplate'>
<span class='greenbubble'><%= email%> <button class='delete'>x</button></span>
</script>
<script type='text/template' id='recipientTemplate'>
<span class='lightbluebubble'><%= email%> <button class='delete'>x</button></span>
</script>
編集2:
#senders
#recipients
現在HTMLにある
<div id='partiesView'>
Senders:<span id='senders'></span><BR>
Recipients:<span id='recipients'></span>
</div>
編集3:
フィドルの最終作業バージョン!!