javascript - 如何将 RESTful API 映射到 BackboneJS 模型和集合中的 URL?

标签 javascript url backbone.js collections model

我有以下 RESTful API:

GET/club/1.0/club.json?sport=FO&country=ES

此服务按运动和国家/地区提供俱乐部列表(例如:西类牙的足球)

GET/club/1.0/club.json?id=xxxx

此服务提供俱乐部的详细信息

在 Backbone.js 中,我为集合尝试了以下 URL:

http://localhost:3000/club/1.0/club.json,

问题:

  1. 如何处理版本控制?
  2. 如何指定sportcountry 等必需参数?

对于我使用这个 urlRoot 的模型:

http://localhost:3000/club/1.0/club.json,

我认为这很简单,因为保存方法会将 /:id 添加到将与我的 ExpressJS 服务器一起使用的 urlRoot。

感谢您的回答。

最佳答案

您应该在您的集合/模型中使用 Backbone sync 进行设置。示例:

收藏:

var ClubCollection = Backbone.Collection.extend({
  model: ClubModel,
  sync: function(method, collection, options){ 
    options = _.extend({}, options, {url: 'club/1.0/club.json');
    return $.ajax(options);
  }
});

模型

var ClubModel = Backbone.Model.extend({
  sync: function(method, model, options){ 
    options = _.extend({}, options, {url: 'club/1.0/club.json');
    switch (method) {
      case 'read':
   options.data = _.extend({}, options.data, {
        id: model.id
       });
  break;
  // case 'delete':
  // break;
  // case 'update':
  // break;
  // case 'create':
  // break;
   }
   return $.ajax(options);
  }
});

然后使用 yourCollection.fetch({data:{sport:'FO',country:'ES'}}) 发出请求。对于您的模型可以是 myModel.set('id', 1).fetch()

更新:哦,对于版本控制,您可以使用变量而不是直接使用数字。

关于javascript - 如何将 RESTful API 映射到 BackboneJS 模型和集合中的 URL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16671205/

相关文章:

javascript - 在 angularjs(2k 行)中加载大量数据后浏览器被卡住

Javascript 和 jQuery - 了解 "this"上下文 - 意外的 "."期间

javascript - 对 "softBind"函数如何工作的困惑

python - Django 导航 url 不起作用

ios - 防止 initWithContentsOfURL : from using cache

javascript - Marionette.CompositeView 中的 templateHelpers

javascript - TinyMCE 和 Firefox 11

php - createAbsoluteUrl 生成类似路径的 URL,如何避免?

javascript - 刷新页面时,带有 pushState 的主干路由不起作用

Backbone.js 和无脂框架 : moving data around