是否可以更改在集合上调用 create() 时加载的 URL?我正在模型上进行此操作,如下所示: Backbone.js Model different url for create and update?
这是我的收集代码的示例:
var GroupsCollection = Backbone.Collection.extend({
model:Group,
url:"/api/groups/get_all/",
parse:function(res){
return res.groups;
},
sync: function(method, model, options) {
var methodUrl = {
'add': '/api/group/create/'
};
if (methodUrl && methodUrl[method.toLowerCase()]) {
options = options || {};
options.url = methodUrl[method.toLowerCase()];
}
Backbone.sync(method, model, options);
}
});
我从我的模型类(组)中处理了同步功能。我在 methodUrl 中使用键“add”,因为 Backbone 文档说调用 create() 时会触发“add”事件。我也尝试过“创建”而不是“添加”(不起作用)。
调用 create() 总是只加载 url:“/api/groups/get_all”
帮忙?也欢迎任何关于这些东西的最佳实践的想法。谢谢!
最佳答案
阅读 backbone.js
源码,你会发现: Collection.sync
仅由 Collection.fetch
调用。所以你的覆盖不起作用。您应该覆盖 Group
模型中的 Model.sync
。
关于backbone.js - 用于创建集合的主干覆盖 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12524841/