【问题标题】:Override url and parse in Backbone collection覆盖 url 并在 Backbone 集合中解析
【发布时间】:2012-10-31 04:53:08
【问题描述】:

我想为开发目的覆盖集合(从 JSON var 或 JSON 文件返回假 json 结果)。但我在下面使用url 时遇到错误

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

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

但是,如果我使用parse,似乎parseinitialize 之后立即执行,因为我的console.log 结果显示相同的内容

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

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

【问题讨论】:

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


    【解决方案1】:

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

    网址collection.urlcollection.url()

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

    您的 url 方法正在返回一个数组,而 Backbone 将其视为 URL 字符串,因此生成 404 的 URL 看起来很奇怪。

    你有一些选择:

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

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

    【讨论】:

      猜你喜欢
      • 2023-03-06
      • 1970-01-01
      • 2012-09-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-01
      • 1970-01-01
      相关资源
      最近更新 更多