2011-12-05 30 views
0

(Rails 3 +主幹0.53) 我從API上的「/ payments」url中獲取數據,並返回不同類型的付款數據。使用沒有特定模型的Backbone.Sync

所以用戶可以例如刪除,比方說,一個信用卡條目,它會同步備份到服務器上

"/credit_cards". 

的問題是,如果我用Backbone.Sync的語法

Backbone.Sync('delete', @options.credit_cards.get('id')) 

它給了我一個「一個」url「屬性或函數必須指定」錯誤。

這是有道理的

@options.credit_cards.get('id') 

不會在這種情況下存在,因爲credit_cards不存儲任何數據模型例如爲:。我只想做一個標準的刪除與Backbone.sync點菜

"/credit_cards/:id" 

只是通過指定ID(這是我從/付款接收)而不是模型(但模型/收藏有網址...)

所以我的問題是:1) 有骨幹的方式,使用backbone.sync沒有集合/模型實際上存儲數據,更喜歡使用jQuery一個簡單的Ajax請求。 實施例:

Backbone.Sync('delete', "specify_a_url_here_with/#{id}")) 

代替使用Backbone.Sync & $就請求混合。

2.)確實有意義或有更好的選擇。

非常感謝!我真的很喜歡!希望問題不要怪異。菲爾

回答

0

您可以將「url」和「data」傳遞給「options」中的Backbone.Sync。除非你明確地在選項中傳遞它們,否則Backbone.sync(方法,模型,選項)會返回一個$ .ajax(params),其中params.url和params.data反映了你的模型。

所以

Backbone.sync('delete', false, {url : "/credit_cards/1", data : ''}) 

應該工作。

0

當你試圖做一些更多的自定義,似乎不符合默認的骨幹行爲,我建議你重寫模型中的Sync()函數或定義一個不同的函數你可以定義你自己的Ajax調用。

我傾向於認爲Backbone模型函數是一組合理的默認值,可以在需要時被覆蓋,而不是您必須使用的一組函數。

Scott