2014-04-28 46 views
0

我有一个骨干模型,我保存如下;BackboneJS使用不同的URL保存模型(创建/更新)

this.model.save(myJson, { 
    url: "person/" + self.options.someId + "/create", 
    success: function() { 
     // 
    } 
}) 

现在有2个UI功能(创建/编辑) 我希望有一个不同的URL将被设置为每一种(创建/编辑)

所以我有2个网址;

Create : url: "person/" + self.options.someId + "/create" 

Edit : url: "person/" + self.options.someId + "/edit" 

这样做的最好方法是什么?

+0

一般来说,坚持使用约定并在同一个URL上使用'POST'来创建和使用'PUT'来更新是一个好主意。 – CodeRain

+0

是的,我确实尝试......但在这种情况下,API由于某种原因而不同...... – testndtv

回答

0

这是我在我的模型中使用,并且工作正常。希望有所帮助。

var myModel = Backbone.Model.extend({ 
    url: '/api/mymodel/', 
    idAttribute: 'id', 
"sync": syncMyModel 
}); 

function syncMyModel(method, model, options){ 
    if(method=='create'){ 
     options.url = model.url; 
     }else{ 
      options.url = model.url + model.get('id') + '/'; 
     } 
     return Backbone.sync(method, model, options); 
};