backbone.fetch()清理数据重写

ycl3bljg  于 2023-08-05  发布在  其他
关注(0)|答案(1)|浏览(137)

我想在一个fetch的电话上提出一个干净的请求。我的API的URL是/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]
我该怎么做呢?

cidc1ykv

cidc1ykv1#

我认为使用查询参数来指定API应该请求哪些模型比使用“1| 2| 3”语法,但如果规范是生成一个/users/1| 2| 3url可以这样实现:

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();

字符串
这样,集合就有责任知道获取什么以及如何获取。

相关问题