【问题标题】:Custom URL for Create, Update and Delete in Backbone.js在 Backbone.js 中创建、更新和删除的自定义 URL
【发布时间】:2013-12-07 03:35:19
【问题描述】:

我有类似backbone-js-model-different-url-for-create-and-update 的要求,但没有得到任何解决。

我的主干模型是这样的:-

var task = backbone.Model.extend({
    idAttribute: "TaskId",

    defaults: {
        TaskId: null,
        Name: null,
        TaskTypeId: null
    },

    // urlRoot: '/MyController/GetTasksAsync',
    methodToURL: {
        'read': '/MyController/Get',
        'create': '/MyController/create',
        'update': '/MyController/update',
        'delete': '/MyController/remove'
    },
    sync: function (method, model, options) {
        options = options || {};
        options.url = model.methodToURL[method.toLowerCase()];

        return Backbone.sync.apply(this, arguments);
    }
});

现在,我不知道如何调用Sync 方法?

这是我尝试过但没有奏效的方法:-

this.model.sync("read",1,"");//(Get method, some hardcoded value /Get/1,no callback)

我将如何调用save方法?

this.model.sync('update',model,'');

我错过了什么吗??

【问题讨论】:

    标签: backbone.js backbone-views


    【解决方案1】:

    我认为您实际上正在寻找的是 Backbone 模型方法获取、保存和销毁您已覆盖的同步方法的委托。

    这里是 fetch 的文档(保存和销毁就在附近):

    model.fetch

    例如,要触发“读取”方法,您可以调用 model.fetch()。

    【讨论】:

    • 更具体地说,您可以声明一个模型 (var model = new task()),然后执行 model.save() 以点击“创建”路径(如果模型是新的;“更新' path 否则),model.fetch() 命中 'read' 路径和 model.destroy() 命中 'delete' 路径。
    • 此外,这些方法允许传入一个对象(文档中的选项),该对象被映射到同步方法中的选项参数。如果您愿意,可以在其中添加 id(在您的示例中为 1)并在同步方法中检查对象的该属性。如果它在那里,你可以将它连接到 uri 的末尾......
    • 我看过文档,如果我按照文档进行操作,我将无法正常工作。你能用一些正确的语法发帖吗?>
    • 使用您提供的代码,您可以像这样声明一个模型: var taskModel = new task();现在,为了与“读取”方法同步,您将执行以下操作:taskModel.fetch();您应该在控制台中看到对 /MyController/Get 的 GET 请求。您可能希望在该路径前加上服务器地址。如果您想在执行 taskModel.fetch() 时转到 /MyController/Get/{id} 您可以将 options.url 行重写为如下所示: options.url = model.methodToURL[method.toLowerCase()] + (model.get('TaskId') === null ? '' : '/' + model.get('TaskId'));
    猜你喜欢
    • 2012-02-02
    • 1970-01-01
    • 2012-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-13
    • 2017-07-26
    • 1970-01-01
    相关资源
    最近更新 更多