【发布时间】:2015-04-09 18:38:34
【问题描述】:
我正在尝试使用主干“保存”方法保存表单数据。我正在使用 POST http 方法将数据保存到服务器。数据确实保存到服务器,但是在网络控制台中,我看到 POST 状态显示已取消,但成功创建了数据。 这是js:
var account = Backbone.View.extend({
el: "#account",
events:{
'click button#save' : 'saveList'
},
render: function(id){
value = new accountModel([],{id:id});
},
saveList: function(event){
var values = $('#form').serializeJSON();
value.save(values, {
success: function(value){
console.log(“success”)
},
error: function(err){
console.log('sorry, your record was not saved' + err);
}
});
});
html:
<form class="form" id="form">
<table>
<tbody>
<tr>
<label>name</label>
<td><input type="text" name="accountName" maxlength="50"/> </td>
</tr>
<tr>
<label>first</label>
<td><input type="text" name="first" maxlength="50"/> </td>
</tr>
<tr>
<label>last</label>
<td><input type="text" name="last" maxlength="50"/> </td>
</tr>
</tbody>
</table>
</form>
我在 success() 和 error() 处设置了一个调试器点,它总是出现错误,但仍会发布数据。我在这里做什么,为什么它的行为如此奇怪?有什么想法吗??
【问题讨论】:
-
错误是什么样的?响应或错误代码是什么?
-
您还在笨拙地实例化您的帐户模型。
new accountModel([],{id:id});初始化模型的正确方法是先使用attributes,然后是options,attributes应该是一个对象,而不是数组。我猜您模型中的url函数依赖于this.id?这不是在模型上存储 ID 的正确方法。它应该在属性中。
标签: jquery backbone.js