3

我似乎找不到任何文档,并且玩弄代码并没有帮助我完全理解这一点。

我有 Backbone 模型,并且在我的我的我将处理程序绑定到模型更改事件:

var myModel = new ModelA();

var myView = new ViewA({
  model: myModel
})

//in my view I have
this.listenTo(this.model, "change", this.handleChange);

有人可以向我解释一下传递给this.handleChange的参数吗?我看到有 2 个参数,modelvalue,但它们到底是什么?

当我绑定到特定属性时会发生什么,如下所示:

this.listenTo(this.model, "change:attr", this.handleChange);

当我使用myModel.unset("attr");从模型中取消设置属性时 ,传递给handleChange的值是什么?我看到在某些情况下值是未定义的,有时它有 1 个属性unset = true

任何帮助或指向相关文档将不胜感激。

4

1 回答 1

3

从代码:

事件change:attr

this.trigger('change:' + changes[i], this, current[changes[i]], options);

事件change

this.trigger('change', this, options);

所以在第一种情况下,参数是:模型、值和使用的选项(外部和内部选项(例如,unset: true用于您的unset调用))。在第二种情况下,由于它不涉及特定属性,因此参数是:模型和选项。

于 2013-06-26T15:50:14.177 回答