set()やunset()時に{validate:true}というオプションを付与するとvalidateメソッドで定義したバリデーションを行う。何も返さなければそのままそのままモデルに格納されるが何か返した場合にはinvalidイベントを発火させモデルには何も格納しない。
var Bar = Backbone.Model.extend({
initialize:function(){
this.on("invalid",function(){
console.log("invalid");
});
},
defaults:{
name:"Jhon"
},
validate: function(attr){
console.log("validate");
if(!attr.name){
return false;
}
}
});
var bar = new Bar();
console.log(bar.get("name"));//Jhon
bar.set({name:""},{validate:true});//validate,invalid
console.log(bar.get("name"));//Jhon
bar.unset("name",{validate:true});//validate,invalid
console.log(bar.get("name"));//Jhon
bar.set({name:"Ben"},{validate:true});//validate
console.log(bar.get("name"));//Ben
【Backbron.jsの最新記事】
