微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript – backbone.js model.save没有设置id

我继承了一个基于骨干js的应用程序.我真的很喜欢骨干,我只是开始了解它.根据我的理解,当在新实体上调用model.save时,它应该将其发布到服务器,服务器应该返回相同的json,但是具有分配的id,并且主干应该将该id保存到模型,以便进一步保存结果到PUT使用ID进行更新.

但是,当我调用model.save()然后尝试获取model.id属性时,它为null.

这是因为我没有回电话吗?所以该物业尚未设定?

我如何设置成功回调?调用model.save({success:function(){…}})不起作用?

这是实际的电话:

model.save(null,{
    success: function () {
        alert('success');
    },error: function () {
        alert('error');
    }
});
最佳答案
对此有点奇怪.设置silent:true只会使得所有事件都不被触发.其他一切都应该正常发生.换句话说,不要假设设置slient:true就是这里的正确答案……

我怀疑你实际上是在某个地方抛出异常(可能是通过验证或类似的东西)并且不知何故,设置沉:true导致一切都流过.

我强烈建议您删除此选项并检查您的控制台或使用调试器运行…我怀疑您有一个潜伏在某处的错误.

一些建议:看一下annotated source的model.set函数.在调用成功回调之前调用它.在该函数内部,如果silent是false,将会发生一些事情.这些包括validation,单个property change触发器和global change触发器.我敢打赌,验证失败或听取更改的事情都会引发异常.

原文地址:https://www.jb51.cc/jquery/428002.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐