调用backbone.js销毁
问题描述:
在哪里获取记录ID我有一些测试代码,我只是试图找出backbone.js。当我调用模型对象骨干上的销毁时,向我的休息服务发出DELETE请求。但是,我看不到任何ID,指示请求数据,查询字符串,主体或任何地方正在删除哪条记录。调用backbone.js销毁
我的模型有一个id属性,我已经将它赋值为1.是否还有其他任何我必须做的确保id通过服务器?还是有一些其他的方式,我应该检测哪些记录被删除?
编辑 - 下面是相关代码:
var AccountModel = Backbone.Model.extend({
url: 'Account/Update',
id: null,
username: ''
});
var accountM = new AccountModel({id: 1, username: 'test'});
accountM.destroy();
当我看着我的调试器看到的AJAX请求时,它只是看起来像这样:
Request URL:http://localhost/probli/Account/Update
Request Method:DELETE
Status Code:200 OK
有好好尝试一下似乎成为一个ID或任何东西,并没有发布数据。我做错了什么?谢谢。
答
你应该设置你的模型urlRoot属性然后让骨干手柄构建DELETE
网址:
var AccountModel = Backbone.Model.extend({
urlRoot: 'Account/Update',
id: null,
username: ''
});
这将导致以下请求时accountM.destroy()
叫做:
Request URL:http://localhost/probli/Account/Update/1
Request Method:DELETE
Status Code:200 OK
答
Backbone.sync会将该销毁作为一个简单的请求与URL中的ID一起发回。例如:
DELETE http://example.com/foos/1
这是HTTP删除一个Foo
与1
的ID。
在像Rails,ASP.NET MVC,甚至Sinatra和其他简单服务器的MVC Web服务器中,这将成为通过服务器传递的参数。
例如,在西纳特拉:
delete "/foos/:id" do
id = params[:id] # the id from the url/route
foo = Foos.find(id) # get the foo
foo.destroy
return {}.to_json
end
正如你所看到的,我在路由定义的参数,称为:id
和我的代码能够通过params
数据进行访问。然后我发现Foo
有问题,销毁它,并返回一个空的JSON结果 - 这是Backbone需要的,即使在销毁期间也是如此。
希望有所帮助。
,你可以分享你的请测试代码? – 2012-01-14 04:00:21
我刚刚编辑帖子以添加代码。感谢您的期待! – Jason 2012-01-16 01:32:08