嗨,我是新来的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('完成'));**