我正试图学习他们在Backbone 0.9.9中所做的新改变。 目前我遇到了一些问题,要了解ListenTo与之间的区别: listenTo var View = Backbone.View.extend({ tagName: "div", intialize: function() { this.listenTo(this.model, 'change', this.render); }, render: function() { this.$el.empty(); this.$el.append('<p>hello world</p>'); } }); 上 var View = Backbone.View.extend({ tagName: "div", intialize: function() { this.model.on('change', this.render, this); }, render: function() { this.$el.empty(); this.$el.append('<p>hello world</p>'); } }); 我听说listenTo允许stopListening取消订阅所有事件时,例如视图被删除,以避免内存泄漏。 这是唯一的原因吗? 问候,博多
骨干的文档指出: events属性也可以定义为一个返回事件散列的函数,以便以编程方式定义事件,以及从父视图inheritance它们。 你如何inheritance父母的视图事件并扩展它们? 父视图 var ParentView = Backbone.View.extend({ events: { 'click': 'onclick' } }); 儿童视图 var ChildView = ParentView.extend({ events: function(){ ???? } });
我有超级查看谁负责渲染子视图 。 当我重新渲染 超级查看 子 视图中的所有事件都丢失了。 这是一个例子: var SubView = Backbone.View.extend({ events: { "click": "click" }, click: function(){ console.log( "click!" ); }, render: function(){ this.$el.html( "click me" ); return this; } }); var Composer = Backbone.View.extend({ initialize: function(){ this.subView = new SubView(); }, render: function(){ this.$el.html( this.subView.render().el ); } }); var composer = new Composer({el: […]