我有一个构建的SharePoint 2010应用程序,它使用backbone.js从列表中检索项目。到目前为止,我可以使用.fetch()和.save()方法,但.destroy()方法不会执行任何操作。成功方法返回未定义。Backbone的model.destroy()不适用于SharePoint 2010 REST列表项目
这是我的模型。请注意,我为每个SharePoint的规范设置了他们的REST API的工作方式。
app.model.Reservation = Backbone.Model.extend({
url : function() {
return this.get("Id") ? '/_vti_bin/listdata.svc/Reservations(' + this.get("Id") + ')' : '/_vti_bin/listdata.svc/Reservations';
},
parse: function(response) {
return response;
}
});
如果我尝试this.model.destroy()不返回任何结果,但如果我使用的是直$。阿贾克斯()调用,它精细删除:
$.ajax({
type: "DELETE",
url: this.model.url(),
contentType: "application/atom+xml"
});
我已经研究了如何重置Backbone的同步方法,但无济于事。我试过Backbone.emulateHTTP和Backbone.emulateJSON。
您是否检查过服务器日志,以查看“$ .ajax”调用和'model.destroy()'生成的请求中有什么不同?你有没有在你的模型上设置['idAttribute'](http://backbonejs.org/#Model-idAttribute)属性为'Id''? –
当我在$ .ajax()调用中使用它作为url时,'Id'字段似乎正常工作。但我只是尝试了你的建议,没有看到任何改变。但是,对于你的第一点......是否有像Chrome开发人员工具那样的方法来检查$ .ajax或.destroy方法在做什么?我无法访问服务器端日志。谢谢! – bentedder
查看开发人员工具中“网络”下的“XHR”。 –