Ampersand-rest-collection 使用多个 url 端点

Ampersand-rest-collection using multiple url end points

在标准的 &-rest-collection 中,您将 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
    }
});

与许多 backbone 属性一样,您可以使用 url 属性 的函数而不是 return 所需的任何动态结果的字符串。

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

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
}