嗨,我是新来的backbonejs,
我在尝试http://addyosmani.github.com/backbone-fundamentals/#validation的示例时遇到了问题
我创建了 2 个模型对象,myTodo 和 myTodo1,
如果我像这样调用 set 函数,由于验证错误,它返回完成:false
var myTodo = new Todo();
myTodo.set('完成', true, {validate: true});
console.log("完成:"+myTodo.get('完成'));
/*
上面的代码返回以下日志:
该模型已初始化。
记得为你的待办事项设置一个标题。
完成:假
*/
购买为什么在执行以下代码时未执行验证
var myTodo1 = new Todo();
myTodo1.set('完成',true);
console.log("完成:"+myTodo1.get('完成'));
myTodo1.set({validate:true})
console.log("完成:"+myTodo1.get('完成'));
/*
上面的代码返回以下日志:
该模型已初始化。下划线-test2.js:11
完成:真正的下划线-test2.js:28
完成:真
*/
虽然两组代码都做同样的工作,但在第一种情况下验证执行但在第二种情况下不执行
为什么?????
下面是完整的示例代码。
var Todo = Backbone.Model.extend({
默认值:{
完成:假,
},
验证:函数(属性){
如果(attribs.title === 未定义){
return "记得为你的待办事项设置一个标题。";
}
},
初始化:函数(){
console.log('此模型已初始化。');
this.on(“无效”,函数(模型,错误){
控制台日志(错误);
});
this.on('change:title', function(){
console.log('- 标题的值已经改变。');
});
}
});
**var myTodo = new Todo();
myTodo.set('完成', true, {validate: true});
console.log("完成:"+myTodo.get('完成'));**
**var myTodo1 = new Todo();
myTodo1.set('完成',true);
console.log("完成:"+myTodo1.get('完成'));
myTodo1.set({validate:true})
console.log("完成:"+myTodo1.get('完成'));**