backbonejs是否会发出'beforeChange'事件?

时间:2014-11-24 20:04:17

标签: javascript backbone.js

我需要抓住" beforeChange"事件,在模型的字段更改之前准备一些东西。 BackboneJS有这样的东西,或者我怎么能完成类似的东西?

1 个答案:

答案 0 :(得分:2)

没有" 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,如果在调用validate: true时传递model.set选项,则会在实际更改模型之前调用该文件。

示例:http://jsfiddle.net/dkho4p2r/1/

这可能不是放置任意代码的最佳位置,但它符合模型change事件之前发生的要求。

3。在调用model.set

之前处理输入

这可能是你想要避免的过于明显的答案,但你总是可以准备一些东西"在模型上调用set()之前。示例:http://jsfiddle.net/dkho4p2r/2/

data = prepareSomeStuff(data);
model.set(data);