2014-04-03 77 views
0

我正在使用BackboneJS並有要更新的模型對象。BackboneJS更新模型和REST API

self.model.save(
{ 
urlRoot: +self.model.get("personId")+"/deactivate" 
}, 
{ 
success: function (model){ 
    self.showMessage('Person deactivated', true, true); 
    self.model.fetch(); 
}, 
error : function(){ 
    $("#save", self.el).button("reset"); 
} 
}); 

現在我的REST方法看起來像

@PUT 
@Path("{id}/deactivate") 
@Consumes({MediaType.APPLICATION_JSON}) 
@Produces({MediaType.APPLICATION_JSON}) 
public CompanyVO deactivatePerson(@PathParam("id") Long id, PersonVO personVO) { 
    return modifyPerson(id, personVO); 
} 

我的問題是有一些問題,我如何設置urlRoot調用相應的REST方法。

請讓我知道正確的方法,以便我可以調用REST方法並更新Person對象。

回答

0

save方法原型爲:model.save([屬性],[選項])

第一個參數是屬性。第二個是選項,比如url,成功,錯誤等方法都可以指定。

如果您已經設置了模型的所有屬性,然後通過「[]」作爲第一個參數保存即

self.model.save([],{ 
    urlRoot: +self.model.get("personId")+"/deactivate, //ensure protocol + domain name are added 
    success: function (model){ 
     self.showMessage('Person deactivated', true, true); 
     self.model.fetch(); 
    }, 
    error : function(){ 
     $("#save", self.el).button("reset"); 
    } 
}); 
+0

所以urlRoot會去第二個參數用於保存()......此外,我假設它只會更改此特定請求的URL而非所有請求。 – testndtv

+0

是的。 urlRoot,成功,錯誤應該作爲第二選項。該URL僅適用於此請求,並不適用於所有請求。 –

+0

您是否檢查解決方案是否有效? –