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
}
在标准的 &-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
}