@52fhy
2016-01-22T08:23:28.000000Z
字数 1190
阅读 524
backbone
<!DOCTYPE html>
<head>
<meta charset="utf-8">
<title>title</title>
<script src="http://the5fireblog.b0.upaiyun.com/staticfile/jquery-1.10.2.js"></script>
<script src="http://the5fireblog.b0.upaiyun.com/staticfile/underscore.js"></script>
<script src="http://the5fireblog.b0.upaiyun.com/staticfile/backbone.js"></script>
</head>
<body>
<script>
var Man = Backbone.Model.extend({
initialize: function(){
//事件绑定
//object.on(event, callback, [context])别名: bind
this.on("change:name", function (model) {
console.log('name被改变为:' + this.get('name'));
//console.log(model);
});
//为对象添加验证规则,以及错误提示。invalid是内置事件.参考Catalog of Events
//也可以在对象生成之后绑定invalid事件,例如man.on('invalid', function (model, error) {});
this.on('invalid', function (model, error) {
console.log(model);
console.log(error);
});
},
//默认属性
defaults: {
name:'张三',
age: '38'
},
// 默认情况下validate在save之前调用, 但如果传递了 {validate:true},也可以在set之前调用。
//校验失败将触发"invalid"事件, 并用此方法返回的值设置模型上的validationError属性。
validate:function(attr){
if(attr.name == '') {
return "name不能为空!";
}
},
});
var man = new Man();
//1.设置属性,将会触发事件绑定
//man.set({"name":"yjc", "age":'22'});
//2.
man.set({"name":""});
//man.save();//会调用model.validate方法验证
//也可以手动触发model.validate方法验证
man.set({"name":""}, {"validate": true});
</script>
</body>