2014-04-28 64 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); 
};