backbone.js - 用于创建集合的主干覆盖 url

标签 backbone.js

是否可以更改在集合上调用 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/

相关文章:

javascript - 主干 |文件就绪脚本

javascript - Backbone.js 和 Saiku 中的触发事件

javascript - 在 requirejs + marionette 应用程序中传递应用程序对象

javascript - 在 subview 中获取 Backbone 父 View 事件

javascript - backbone.js 无法扩展路由器

javascript - 如何设置 Backbone 模型值而不延迟?

javascript - 主干模型.destroy() 有限

javascript - Backbone 获取请求是 OPTIONS 方法

backbone.js: 'instanceof' 的右侧不是对象

javascript - 如何制作一个使用 Javascript 路由器的可索引网站?