我需要捕获“beforeChange
”事件,以便在模型字段更改之前准备一些内容。 BackboneJS 有类似的东西吗?或者我怎样才能完成类似的事情?
最佳答案
不存在“beforeChange
”事件这样的事情,但我知道有几种方法可以完成类似的事情。
1。覆盖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);
}
});
2。 model.validate
您还可以访问model.validate
,如果您在调用 model.set
时传递 validate: true
选项,则会在模型实际更改之前调用该选项。
示例:http://jsfiddle.net/dkho4p2r/1/
这可能不是放置任意代码的最佳位置,但它符合在模型的 change
事件之前发生的要求。
3。在调用 model.set
之前处理输入
这可能是您想要避免的过于明显的答案,但您始终可以在对模型调用 set()
之前“准备一些东西”。示例:http://jsfiddle.net/dkho4p2r/2/
data = prepareSomeStuff(data);
model.set(data);
关于javascript - backbonejs 是否发出 'beforeChange' 事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27113207/