Backbone .fetch()清理数据重写

时间:2014-04-11 13:18:00

标签: javascript api url backbone.js fetch

我想在fetch电话上通过骨干提出干净的请求。我的API的网址是/users/,我想传递数据:

var users = new UsersCollection({ users_id: "1|2|3" });
users.fetch({
        data: "users_id=1|2|3"
    });

用户是UserModel

的集合

但网址变为/users/?users_id=1|2|3,但我希望它为/users/1|2|3

我使用以下行.htaccess

RewriteRule ^(.*)/$ /api.php?fct=$1 [L]

我该怎么做?

1 个答案:

答案 0 :(得分:0)

我认为使用查询参数来指定REST api应该要求的模型比" 1 | 2 | 3"语法,但如果规范是生成/ users / 1 | 2 | 3 url,可以这样实现:

var UsersCollection =  Backbone.Collection.extend({
  initialize: function(models, options){
    this.requestedModelsId = options.modelsId;
  },
  url: function(){
    return "/users/" +  this.requestedModelsId.join("|"); //generates  /users/1|2|3 if for requestedModelsId [1,2,3]
  }
});


var users = new UsersCollection(undefined, {modelsId : [1,2,3]});
users.fetch();

通过这种方式,集合可以负责知道要获取的内容以及如何获取它。