在Backbone集合中覆盖url并解析

时间:2012-10-31 04:53:08

标签: javascript jquery ajax model-view-controller backbone.js

我想覆盖用于开发目的的集合(从JSON var或JSON文件返回假json结果)。但是我在下面用url

搞错了

http://jsfiddle.net/qhoc/uZhM8/

GET http://fiddle.jshell.net/_display/[object%20Object],[object%20Object] 404 (NOT FOUND)

但是,如果我使用parseparse似乎在initialize之后立即执行,因为我的console.log结果显示同样的事情

http://jsfiddle.net/qhoc/uZhM8/1/

那么如何覆盖url以便fetch可以在某个时刻添加另一个JSON(在单独的函数中)?

1 个答案:

答案 0 :(得分:1)

url of a collection应该返回一个与$.ajax一起用来与服务器通信的URL:

  

网址 collection.urlcollection.url()

     

在集合上设置 url 属性(或函数)以引用其在服务器上的位置。该集合中的模型将使用 url 来构建自己的网址。

你的url方法正在返回一个数组,而Backbone正在将其视为一个URL字符串,因此产生了404的奇怪的URL。

你有一些选择:

  • 使用使用jsfiddle's AJAX stubbing工具生成必要JSON的网址。
  • 覆盖sync以使用内联的JSON而不是$.ajax来电。
  • 覆盖fetch以使用内联的JSON,而不是调用sync

如果您只关心获取数据,那么这三个都应该有效,如果您需要模拟保存或删除,那么您可能最终会覆盖sync