backbone升级0.9.9版本,添加两个方法listenTo与stopListening

listenTo用于绑定事件,stopListening关闭绑定事件了
它们与on有什么不同的呢!这里做个例子

  var Todo = Backbone.Model.extend({
    ...
  })
   
  var todo = new Todo()
  var appView = Backbone.View.extend({
    initialize: function(){
      this.listenTo(todo, "change:name", this.edit_attr)
    },
    edit_attr: function(){
      this.$(".name").html(this.model.get('name'))
    }
  })

  var app_view = new appView()
  app_view.remove()  

当我们app_view.remove()删除之后会自动执行stopListening方法关注绑定事件
todo模型就不会有这个视图绑的事件了,如果

  this.listenTo(todo, "change:name", this.edit_attr)

改用这种绑定方式

  todo.on("change:name", this.edit_attr, this)

app_view.remove()删除之后,todo模型还是会有这个绑定的事件
当然也可以用off来处理,但是现在有listenTo就不用做特别的处理了。

Comments

Copyright © 2017 kaka