javascript - Backbone.js开发中关于save后双重验证的问题?
大家讲道理
大家讲道理 2017-04-10 16:48:53
[JavaScript讨论组]

var Model = Backbone.Model.extend({    
    url:'data/cutprice.json',
    validate : function(attrs) {         
         console.log(attrs.user.tel);
         //为什么会输出两个;还有就是先后循序
    }
});

this.model= new Model();//这里输出一次?先是undefined?
var user = this.model.get('user');
var phone=$("input[name='reg-tel']").val();
user.tel = phone;
this.model.set({'user': user},{merge: true});
this.model.save();//这里验证一次,输出的值是正确的,但是循序;

想请大神解释下三个的顺序造成的原因?

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

全部回复(3)
黄舟

save()//保存,调用validate,调用sync,第一次是create,第二次是update

他会先调用一次validate,第二次要保存的服务器中,然后又验证了一次(可能防止被修改吧)

参考这里的博客,自己也做了实验
http://zccst.iteye.com/blog/2085123

迷茫

Backbone 在 model save 的时候默认是会触发 validate 的,但是 new 的时候是应该是不会触发的。

你自己看下文档 http://backbonejs.org/#Model-validate

阿神

我局的应该是

this.model.set //这里触发了一个验证

你可以在

this.mode = new Model();

后面加一个return 看看只执行到

this.mode = new Model();是不是会console.log,如果不是的话执行到
this.model.set这里结束
我告诉你的不是答案是调试方式。。。。
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号