是否可以使Backbone.js与复合键一起工作?
Id,而不是将id或idAttributemodel设置为特定的值,我想知道将使用多个属性的Backbone.js。这样,每个RESTful调用都会发送这两个参数来标识我们正在讨论的对象。
为了举个例子,假设我想将一个人的债务更新给一个特定的人,模型是:
Borrower (borrowerId, name, ...)
Lender (lenderId, name, ...)
Debt (borrowerId, lenderId, debtAmount)因此,我现在想让Backbone.js更新/删除债务对象。如何使它与复合键(borrowerId, lenderId)一起工作?
发布于 2012-02-22 23:56:40
您可以覆盖模型的url()实现,如骨干文件中所建议的那样
var Debt = Backbone.Model.extend({
url: function() {
var base = /* your base URL here */;
if (this.isNew()) return base;
return base + (base.charAt(base.length - 1) == '/' ? '' : '/') + encodeURIComponent(this.get("borrowerId")+"_"+this.get("lenderId"));
}
});以上代码将生成表单baseURL/borrowerId_lenderId的URL。请注意,在构造模型的URL时,可能需要考虑集合基URL。
发布于 2018-03-31 18:25:09
您需要覆盖集合上的URL函数和modelid函数。默认情况下,URL只知道如何处理单个属性,因此需要一种方法来映射它。
集合在get期间使用字典查找元素。有一个modelId函数可以将模型转换为表示字典中使用的键的强函数。对于化合物,你让它返回'‘+ id1 + '-’+ id2或类似的。
https://stackoverflow.com/questions/9404922
复制相似问题