javascript - backbonejs 是否发出 'beforeChange' 事件?

标签 javascript backbone.js

我需要捕获“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/

相关文章:

javascript - 在 DOM 中的元素之前绑定(bind) Rivets.js

javascript - Backbone 模型没有默认渲染?需要 Jade 和 Backbone 大师

javascript - Backbone : Batch save models in single request?

javascript - 查找选项 jQuery 不工作(我用错了)

javascript - 密码在激活邮件中

javascript - 粘性标题 Logo 悬停

javascript - 如何提高 three.js 中的阴影质量

javascript - 如何从 .split 函数中删除单词? (Javascript)

php - Jquery post回调不起作用

backbone.js - underscore.js 模板中的每个循环