2011-08-23 27 views
0

按照这些指令 http://robertogds.com/post/3324511589/howto-backbone-js-using-rails-3不正确使用POST Backbone.js的

问题/错误是,内容永远不会保存到数据库。用Firebug看来该POST JSON请求是不正确: 内容 “空TODO ......” 做 假
文本 “测试”

基本上,Backbone.js的事件触发一个JSON更新时需要输入数据(“测试”)并创建新的模型属性“文本”,而不是更新“内容”数据属性...

有什么想法吗?

回答

0

看来,该文章的作者忘记了几个步骤。需要todos.js文件,包括一些修改,以确保:文本变量(在Backbone.js的待办事项例子)变更为:内容

例如的setText功能

var text = this.model.get('content'); 

关闭功能

// Close the `"editing"` mode, saving changes to the todo. 
    close: function() { 
     this.model.save({content: this.input.val()}); 
     $(this.el).removeClass("editing"); 
    }, 

和createOnEnter功能

// create new **Todo** model persisting it to *localStorage*. 
    createOnEnter: function(e) { 
     var text = this.input.val(); 
     if (!text || e.keyCode != 13) return; 
     Todos.create({content: text}); 
     this.input.val(''); 
    }, 
0

你叫保存在Backbone.js的模式是这样的:

t = new Todo; 

t.set({ 'content' : 'test' }); 

t.save(); 

或者,你这样做:

t = new Todo; 

t.save({ 'content' : 'test' }); 

也有来自Web服务器的任何输出到控制台当你尝试并保存模型?这可能有助于缩小问题所在。

+1

我理解了它...的instructio ns忘记了需要更新Todo.js以确保示例To​​do应用中的:text变量已更新为:content。所以,如果不设置它将默认值发送到服务器的值(我从json文章中知道) – Jon