2013-09-04 2 views
0

У меня есть этот код:Как сделать can.Model отправлять данные JSON при обновлении?

var SotriesModel = can.Model.extend({ 
    findAll: 'GET /api/stories/', 
    create: function(story) { 
     console.log(story) 
     return $.ajax({ 
      url: '/api/stories/', 
      type: 'POST', 
      contentType: "application/json; charset=utf-8", 
      dataType: "json", 
      data: JSON.stringify(story) 
     }); 
    }, 
    update : function(story) { 
     console.log(story) 
     return $.ajax({ 
      url: '/api/stories/', 
      type: 'PUT', 
      contentType: "application/json; charset=utf-8", 
      dataType: "json", 
      data: JSON.stringify(story) 
     }); 
    }, 
    destroy: 'DELETE /api/stories/{id}' 
}, {}); 
var story = new SotriesModel({id:123123, name:"test"}); 
story.save(); 

Что я ожидаю от сохраняемого запроса PUT с JSON в полезной нагрузке, но то, что я получаю только идентификационный номер:

123123 

ответ

0

update method signature для использования функция can.Model.update: function(id, serialized) -> can.Deffered.

Итак, в качестве первого параметра вы всегда получаете идентификатор, а второй - сериализованные данные.

Изменение вашей update : function(story) {} до update : function(id, story) {} должно решить проблему.

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