Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Backbone.js 通过listenTo跟踪主干事件_Backbone.js_Backbone Events - Fatal编程技术网

Backbone.js 通过listenTo跟踪主干事件

Backbone.js 通过listenTo跟踪主干事件,backbone.js,backbone-events,Backbone.js,Backbone Events,我已经开始用脊梁骨工作了 在学习主干网的过程中,我了解到使用.listenTo而不是.on的优点是listenTo允许“对象跟踪事件” 我不明白这句话想说什么。我只能看出.on和.listenTo之间的区别在于语法。考虑两个调用: this.model.on('change', this.some_method); this.listenTo(this.model, 'change', this.some_method); 在第一种情况下: this.model知道有人在监听'change'事

我已经开始用脊梁骨工作了

在学习主干网的过程中,我了解到使用.listenTo而不是.on的优点是listenTo允许“对象跟踪事件”

我不明白这句话想说什么。我只能看出.on和.listenTo之间的区别在于语法。

考虑两个调用:

this.model.on('change', this.some_method);
this.listenTo(this.model, 'change', this.some_method);
在第一种情况下:

  • this.model
    知道有人在监听
    'change'
    事件,但它不知道是谁
  • 这个
    不知道它在听什么,除非你明确跟踪你所做的调用的内容
  • 在第二种情况下:

  • this.model
    知道有人在监听
    'change'
    事件,但它不知道是谁
  • 知道它正在侦听来自此.model的事件
  • 是的,语法是不同的,但主要的区别是谁知道谁在听:打开
    ,只有被听的东西知道有一个听者;使用
    listenTo
    ,听者也知道他们在听什么

    如果您想停止收听事件,则差异很重要。如果你正在使用,那么你必须保留你自己正在听的内容的列表,以便你可以使用它们;如果您正在使用,那么
    listenTo
    会跟踪这些信息,并且您可以简单地进行操作

    例如,如下所示:

    remove: function() {
      this.$el.remove();
      this.stopListening();
      return this;
    }
    

    因此,您可以调用
    view.remove()
    ,它将自动清理您拥有的任何事件绑定(只要您使用
    listenTo
    ),并且僵尸侦听器的机会将大大减少。

    O!我得到了它。谢谢你的指导。我在主干主站点本身中没有找到这样的详细信息。@iCybernetics:在出现
    listenTo
    方法之前使用主干时,
    listenTo
    的实用程序更容易看到。是的!从Backbonejs.org提供的更改日志中获取所有信息