こんにちは、私はバックボーンを学んでおり、イベントをビューにバインドするのに問題があります。私の問題は、呼び出されたときにすべてのビューを 1 つのビューの一部にすぎないボタン プレス イベントにバインドするビュー コンストラクターがあることです。ボタンを含む 1 つのビューのみにボタン プレス イベントをバインドしたいと思います。
http://jsbin.com/tunazatu/6/edit?js,console,output
- すべての表示ボタンをクリックします
- 次にクリックして戻る 1
- 赤いボタンをクリックします (すべてのビューのモデル console.log その名前)
だから私はこの複数のイベントの発火からのコードを見てきました。これは、tagName を介して同じ el を持つ複数のビューを持つことができるが、イベントをそれらの html 要素にのみマップできることを示しています。これは、Jérôme Gravel-Niquet の localtodos の例でも行われています。
el /tunazatu/7/edit?js,console,output を宣言しないことも試みましたが、イベントがバインドされないようです。
var AppView = Backbone.View.extend({
tagName:"div", //tagName defined
getName:function(){
console.log(this.model.get('name'));
},
initialize:function(options){
this.listenTo(this.model, 'change', this.render);
var temp_mapper = {appView1:'#route1',appView2:'#route2',appView3:'#route3'};
var m_name = this.model.get('name');
this.template = _.template($(temp_mapper[m_name]).html()); //choose the correct template
},
render:function(){
var temp = this.template(this.model.toJSON()); //populate the template with model data
var newElement = this.$el.html(temp); //put it in the view's tagName
$('#content').html(newElement);
},
events:{
"click button":"log"
},
log:function(){
this.getName();
}
});