如何解决使用动态网址收集骨干
| 创建集合后,主干将一次全部配置url。以后是否可以更改此网址? 下面的示例显示在/product
处有2个POST,在/product/id/stock
处有2个POST
。最后一个POST
将不起作用,Backbone将ID连接起来并尝试将其PUT
,但我不知道为什么。
products.create({ name: \'American Pastoral\',price: 8 });
products.create({ name: \'The Grapes of Wrath\',price: 10 });
products.each(function(product) {
var id = parseInt(product.get(\'id\'));
stocks.setId(id);
stocks.create({ id: id,quantity: 12 });
}
库存集合:
Backbone.Collection.extend({
url: function() {
return this.url;
},parse : function(resp) {
return resp.stock;
},setProduct: function(id) {
this.url = \'/product/\'+id+\'/stock\';
}
});
这行不通。
解决方法
保存现有模型时,Backbone.js将使用模型的URL。目前尚不清楚您要做什么-例如,我不知道股票是什么。无论如何,您的代码可能需要与以下代码相似,并且您不应该动态更改网址:
Product = Backbone.Model.extend({
url: function() {
return \'/product/\' + id + \'/stock\';
}
});
ProductList = Backbone.Collection.extend({
model: Product,url: \'/product\'
}):
然后,Backbone.js将使用集合URL进行创建,并使用模型URL进行保存。我认为您需要单独保留url,并让骨干网的默认功能对其进行处理。
, 我遇到了本质上相同的问题。似乎Backbone的模式是锁定模型和集合中的相对URI,并允许框架使用它们为给定资源构建最终的最终URI。这对于不变的Restful URI \模板非常有用。但是,在纯RESTful服务中,您期望相对URI的列表作为给定资源的一部分列出。您可能需要这样做的原因有很多,很明显的一个原因是资源的URI是否移动。
据我所知,Backbone无法轻松地对此进行处理。在以上问题中,我的解决方法是使用OLN重新定义模型url方法。您可以在首次获取集合或对其进行初始化时执行此操作。基本上建立自己处理URI列表的逻辑。
, 我知道这是一个老问题,但是花了我一些时间才能确定如何解决我的问题。在手册中的提取操作下有以下提示:
jQuery.ajax options can also be passed directly as fetch options,so to fetch a specific page of a paginated collection: Documents.fetch({data: {page: 3}})
将传递给data参数的对象作为URL GET变量添加。因此,如果已有变量,则URL将变成URL?page = 3或URL?x = 1&page = 3。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。