2012-03-25 1 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() 

Я ожидаю, что он выполнит запрос POST на URL-адрес api/purchaseorders. Когда я отлаживаю функции save() и sync() в Backbone JS, похоже, что он действительно работает POST, но в последний момент кажется, что он действительно делает GET http://i.imgur.com/dQK88.png

I я немного смущен, почему это произойдет. У меня возникают аналогичные проблемы при попытке сделать обновление - это должно быть PUT. Я предполагаю, что в модели что-то напугано, но я понятия не имею, что это может быть.

Любая помощь была бы принята с благодарностью.

Спасибо!

+0

Просто догадаться - возможно, после POST это синхронизация состояния базовой модели с бэкэнд-моделью? –

ответ

0

Я проверил код, который у вас есть, в вопросе (он должен был позвонить new App.Models.Purchaseorder, без s, хотя FYI), и он выполняет POST, как ожидалось.

Какая версия базовой линии и Подчеркивание вы используете?

Адрес a fiddle.

Смежные вопросы