(Rails 3 +骨干0.53) 我在“/ payments”网址上从我的API获取数据,它会返回不同类型的付款数据。
因此,用户可以删除,例如信用卡条目,并将其同步备份到服务器上
"/credit_cards".
问题是如果我使用Backbone.Sync语法
Backbone.Sync('delete', @options.credit_cards.get('id'))
它给了我一个“ A”url“属性或函数必须指定”错误。
这个模型很有意义,例如:
@options.credit_cards.get('id')
在这种情况下不存在,因为credit_cards不存储任何数据。我只想用Backbone.syncála
做一个标准的DELETE"/credit_cards/:id"
但只是通过指定id(我从/ payments收到)而不是模型(但模型/集合有url ...)
所以我的问题是:1。) 在骨干网中有没有办法使用backbone.sync而不实际将数据存储在集合/模型中,更像是一个简单的jQuery ajax请求。 例如:
Backbone.Sync('delete', "specify_a_url_here_with/#{id}"))
而不是使用Backbone.Sync& $ .ajax请求混合。
2。)这是否有意义或有更好的选择。
非常感谢!我真的很喜欢!希望这个问题不要怪异。菲尔
答案 0 :(得分:0)
当您尝试做一些更多的自定义,似乎不适合默认的Backbone行为时,我建议您覆盖模型中的Sync()函数或定义一个不同的函数,您可以定义自己的Ajax调用。
我倾向于将Backbone模型函数视为一组合理的默认值,可以在需要时覆盖,而不是必须使用的一组函数。
斯科特
答案 1 :(得分:0)
您可以在“选项”中将“url”和“data”传递给Backbone.Sync。
Backbone.sync(方法,模型,选项)返回$ .ajax(params),其中params.url和params.data反映您的模型,除非您在选项中明确地传递它们。
所以
Backbone.sync('delete', false, {url : "/credit_cards/1", data : ''})
应该有用。