2
我已经开始使用Backbone。通过listenTo跟踪骨干事件
在学习Backbone时,我知道使用.listenTo而不是.on的优点是listenTo允许“对象跟踪事件”。
我没有得到这句话想说什么。那么我只能看到.on和.listenTo之间的区别是关于语法的。
我已经开始使用Backbone。通过listenTo跟踪骨干事件
在学习Backbone时,我知道使用.listenTo而不是.on的优点是listenTo允许“对象跟踪事件”。
我没有得到这句话想说什么。那么我只能看到.on和.listenTo之间的区别是关于语法的。
考虑两个呼叫:
this.model.on('change', this.some_method);
this.listenTo(this.model, 'change', this.some_method);
在第一种情况:
this.model
知道有人在监听'change'
事件,但它不知道是谁。this
不知道它在听什么,除非您明确跟踪您所做的电话号码为on
。在第二种情况:
this.model
知道有人在监听'change'
事件,但它不知道是谁。this
知道它正在收听来自this.model
的事件。所以是的,语法是不同的,但主要的区别是谁知道谁在倾听:与on
,只有听到的东西知道有一个监听器;与listenTo
,听众也知道他们在听什么。
如果您想停止收听活动,区别很重要。如果您使用的是on
,那么您必须保留自己的收听列表,以便您可以off
;如果您使用的是listenTo
,那么listenTo
会跟踪这一点,您可以简单地使用stopListening
。
例如,View#remove
看起来是这样的:
remove: function() {
this.$el.remove();
this.stopListening();
return this;
}
,所以你可以调用view.remove()
,它会自动清理您有任何事件绑定(只要你使用listenTo
)和僵尸听众的机会大幅减少。
O!我知道了。感谢您的指导。我在Backbone Home网站本身没有找到这样的细节。 –
@iCybernetics:在有'listenTo'方法之前使用Backbone时,'listenTo'的效用更容易被看到。 –
是的!获取了Backbonejs.org提供的Change-log中的所有信息 –