1
我已經創建了一個對象:只有在實例上設置時纔對骨幹模型進行驗證?
var Person = Backbone.Model.extend({
defaults: {
'name': '',
'age': 0
},
initialize: function() {
this.on('error', function(model, error){
console.log(error);
});
},
validate: function(attributes){
if (attributes.name == '') {
return "How do we call him!?";
}
},
changeName: function(name) {
this.set({'name':name});
},
getOlder: function() {
this.set({'age': this.get('age') +1});
}
});
我創建一個Person的實例,並放置在一個空白的名字,我從來沒有收到一個錯誤。但是當我在已經創建的實例上設置一個空白名稱時,它激發了驗證。
var teejay = new Person;
teejay.changeName('');
=> How do we call him!?
teejay.get('name');
=> ""
從什麼,我從骨幹源代碼看,我看到
this.set(attributes, {silent: true});
是正確的假設,驗證只是做每當屬性被更改或設置?
「驗證調用之前設置和保存」按骨幹的文檔。 http://backbonejs.org/#Model-validate – 3coins