backbone.js - 哪些参数被传递给绑定(bind)到 Backbone.Model 更改事件的处理程序?

标签 backbone.js marionette

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

我有 Backbone 模型,在我的模型中,我将处理程序绑定(bind)到模型更改事件:

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,但它们到底是什么?

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

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

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

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

最佳答案

来自代码:

事件 change:attr:

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

事件改变:

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

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

关于backbone.js - 哪些参数被传递给绑定(bind)到 Backbone.Model 更改事件的处理程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17324344/

相关文章:

backbone.js - Backbone.Marionette-访问ItemView模板或CompositeView模板中的变量

javascript - @ 对象键中的符号

javascript - 告诉 JSHint 忽略对象变量名称,例如 obj.@var

javascript - 如何从 View 中捕获关键事件?

javascript - Backbone.js:区分仍在加载的集合和空集合?

javascript - 使用 Jasmine 测试 Marionette View 和 Handlebars 模板

javascript - 如何在 marionette 中渲染没有 model.toJSON() 的模板

javascript - 通过主干路由器查看更改不断恢复到主页

javascript - 使用 Marionette CollectionView 为每个项目创建多个 View

javascript - 在主干网和 Rails 之间共享过滤、排序和验证逻辑