2012-03-25 31 views
0

我在處理一個Backbone項目時遇到了一些問題。使用GET而不是PUT或POST的骨幹

我有以下型號:

class App.Models.Purchaseorder extends Backbone.Model 
    url: -> 
     base = 'api/purchaseorders' 

     if this.isNew() 
      base 
     else 
      base + '/' + this.id; 

    urlRoot: 'api/purchaseorders' 

當我運行在控制檯以下:

po = new App.Models.Purchaseorders; 
po.set({'po_number': '1234', 'locale': 'Home', 'po_date': '3/22/2012'}); 
它似乎正確設置屬性

。但是,如果我運行

po.save() 

我希望它做api/purchaseorders網址的POST請求。當我通過Backbone JS中的save()和sync()函數進行調試時,它看起來確實在運行一個POST,但在最後一分鐘,它看起來好像它真的在做一個GET http://i.imgur.com/dQK88.png

I我有點困惑,爲什麼會發生這種情況。我在嘗試更新時遇到了類似的問題 - 應該在做一個PUT。我假設模型中有些東西是時髦的,但我不知道它會是什麼。

任何幫助將不勝感激。

謝謝!

+0

只是一個猜測 - 也許在POST後,它是與後端模型同步骨幹模型的狀態? – 2012-03-25 00:48:56

回答

0

我測試了您在問題中的代碼(不得不調用new App.Models.Purchaseorder,但不提供s,儘管僅供參考),並且它按預期執行POST。

什麼版本的Backbone 下劃線是你用的嗎?

這是a fiddle