使用.save()发布表单数据以传递url参数

时间:2011-11-18 06:15:31

标签: javascript backbone.js

我发布的页面接受id,email

之类的参数

我该如何发送

/index?id=001&email=user@email.com  
在backbone.js中

model.save()?

2 个答案:

答案 0 :(得分:8)

您可以将第二个参数中的任何jQuery ajax选项传递给save()。例如:

myModel.save({}, { url: "/index?id=001&email=user@email.com" });

如果你需要概括或干掉它,那么重写同步可能是个更好的主意。

答案 1 :(得分:3)

您可以在模型定义中添加sync方法。

MyModel = Backbone.Model.extend({
    sync: function(method, model, options){
        return $.ajax({
            type:         'POST',
            contentType:  'application/x-www-form-urlencoded',
            beforeSend:   function(xhr) {
                xhr.setRequestHeader('X-HTTP-Method-Override', 'POST');
            },
            dataType:     'json',
            url:          '/index?id=' + this.get('id') + '&email=' + this.get('email')
        });
    }
});


myModel = new MyModel({
    'id': '001',
    'email': 'user@email.com'
});

myModel.save();