我需要抓住" beforeChange
"事件,在模型的字段更改之前准备一些东西。 BackboneJS有这样的东西,或者我怎么能完成类似的东西?
答案 0 :(得分:2)
没有" beforeChange
"事件 - 但我知道有几种方法可以完成类似的事情。
model.set
最简单的事情是覆盖model.set
示例:http://jsfiddle.net/dkho4p2r/
var Foo = Backbone.Model.extend({
set: function (attributes, options) {
// do stuff here
Backbone.Model.prototype.set.apply(this, arguments);
}
});
model.validate
您还可以访问model.validate
,如果在调用validate: true
时传递model.set
选项,则会在实际更改模型之前调用该文件。
示例:http://jsfiddle.net/dkho4p2r/1/
这可能不是放置任意代码的最佳位置,但它符合模型change
事件之前发生的要求。
model.set
这可能是你想要避免的过于明显的答案,但你总是可以准备一些东西"在模型上调用set()
之前。示例:http://jsfiddle.net/dkho4p2r/2/
data = prepareSomeStuff(data);
model.set(data);