【问题标题】:Allowing multiple routes for a single Backbone Model允许单个主干模型的多个路由
【发布时间】:2013-05-17 20:29:26
【问题描述】:

我是 Backbone 的新手,正在为网站创建一些基本的 API。但是,我遇到了一个尚未找到解决方案的问题。

在我的前端,我有一个名为 Item 的 Backbone 模型,它有一个 urlRoot:“/item”。现在 Backbone 使用这个 urlRoot 向服务器发送不同的 HTTP 请求,对吗?所以如果我的主干模型使用 Item.fetch() 它会发送一个 GET 请求,而 Item.save() 可能会发送一个 POST 请求。

然后我的后端有一堆监听器函数来处理不同的情况,如“/createItem”、“/updateItem”、“deleteItem”等。所有这些都可以使用提供的基本 urlRoot 来处理吗?还是我必须明确明确发出什么路线?

【问题讨论】:

    标签: node.js backbone.js express


    【解决方案1】:

    如果您想遵循默认方式,您的后端不应为每个 CRUD 操作使用不同的名称。它应该使用您使用模型的 rootUrl + /id 指定的 url,并且应该为该单个 URL 处理 HTTP POST、GET、PUT 或 DELETE(除了 POST URL 没有附加 /id)。

    见:http://backbonejs.org/#Sync

    【讨论】:

      【解决方案2】:

      由于您使用的是一组非常规的休息端点,您需要为您的模型提供自定义同步方法:

      sync : function(method, model, options) {
          if (method === 'read') {
              this.baseUrl = '/item';
              return Backbone.sync.apply(this, arguments);
          } ...
      }
      

      【讨论】:

        猜你喜欢
        • 2014-10-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-06-22
        • 1970-01-01
        • 2012-12-25
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多