使用多个url端点进行&符号休息收集

时间:2015-07-01 17:59:09

标签: rest backbone.js ampersand.js

在标准的&符号 - 休息 - 集合中,您将url端点定义为属性,并使用该URL定义[getOr] Fetch()查询。

我有两个相同型号的端点。基本上,当我拉一个对象列表时,我使用一个url端点,但是当我拉动单个对象时,我需要使用另一个。是否可以告诉fetch()在每种情况下使用哪个url?

DocStore = _.extend(docs, {
    url: [could this be an object or array?]
    getOne: function(docId) {
        return this.fetchById(docId); //should use /doc/:docId
    },
    getMany: function(groupId) {
        return DocStore.getOrFetch(groupId); //should use /group/:groupId/docs
    }
});

1 个答案:

答案 0 :(得分:2)

与许多主干属性一样,您可以使用url属性的函数而不是字符串来返回所需的动态结果。

例如,您可以执行以下操作

url : function () {
 return this.fetchingMany ? '/group/' : '/doc'
},

getOne: function(docId) {
  this.fetchingMany = false;
  this.fetch(); //should use /doc/:docId
},
getMany: function(groupId) {
   this.fetchingMany = true;
   this.fetch(); //should use /group/:groupId/docs
}