原理

Backbone的模版和事件绑定原理是输出HTML,供dom操作。然后利用Javascript代理机制进行对应的事件绑定。

 1 var QAListTopicView = Backbone.View.extend({
 2   events: {
 3     "click li": 'topic_show'
 4   },
 5   topic_show: function(event) {
 6   },
 7   template: _.template($("#qa_list_topic_template").html()),
 8   initialize: function(opts) {
 9     this.topics = opts.topics;
10     return this;
11   },
12   render: function() {
13     this.$el.html(this.template());
14     return this;
15   }
16 });
17 
18 var list_topic_view = new QAListTopicView(data);
19 $("#qa ul").html(list_topic_view.render().el);

如果在View.render方法里进行事件绑定,那么就会对多重Backbone.View的多重实例进行重复绑定。

例子

详细的一个使用Backbone里的View和Event的例子见: https://github.com/eoecn/qa-rails/blob/master/app/assets/javascripts/qa-rails.js