2
我需要捕捉一個「beforeChange
」事件,在模型字段更改之前準備一些內容。 BackboneJS是否有類似的東西,或者我怎麼能做到類似的東西?backbonejs是否發佈'beforeChange'事件?
我需要捕捉一個「beforeChange
」事件,在模型字段更改之前準備一些內容。 BackboneJS是否有類似的東西,或者我怎麼能做到類似的東西?backbonejs是否發佈'beforeChange'事件?
沒有「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
,-如果您通過調用model.set
時的validate: true
選項 - 在模型實際更改之前調用。
例子:http://jsfiddle.net/dkho4p2r/1/
這可能是不要把任意代碼的最佳場所,但它符合模型的change
事件之前發生的要求。調用model.set
前
set()
才能永遠只是「準備一些東西。」示例:http://jsfiddle.net/dkho4p2r/2/data = prepareSomeStuff(data);
model.set(data);
看起來像是如果set操作導致值的更改,就會拋出'change'。對於你正在尋找的功能,我會覆蓋'set'。您可以提前檢查您的密鑰,在發現時拋出預先事件,然後按照默認設置行爲 – stakolee 2014-11-24 20:29:46