如何设置Backbone.js在JSON文件中包含模型名称?

问题描述:

我一直在研究一个Backbone.js项目,它可以同步到一个Google App Engine REST服务器,我也将它放在一起。我正在使用Appengine-Rest-Server项目代码来启用REST界面。 IT运作得非常好,但有一个问题。当我发布一个新模式,它预计的形式JSON职位:如何设置Backbone.js在JSON文件中包含模型名称?

{ 'modelname' : {'attribute1':'attribute','attribute2':'attribute'}} 

当我使用Python和请求库这个POST数据到我的REST服务器...它工作正常。

Backbone.js的出现,而不型号名称一拉

{'attribute1':'attribute','attribute2':'attribute'} 

被发送POST请求现在,不是什么格式是100%基于REST的专家,我不知道我的REST服务器是否是配置不当(在这种情况下,我不希望你们能够帮助代码),不管Backbone.js是否配置不当,或者这两种格式是否可能是RESTful,我只需要弄清楚如何获得骨干添加模型名称。

因此,要关闭这些格式中的一种还是两种格式与真正的RESTful API兼容?如果要求JSON中的模型名称不是制作RESTful API的严重违规,那么是否有人知道如何让Backbone以正确格式发送发布请求?

谢谢!

+0

这可能是有用的:http://www.vinaysahni.com/best-practices-for -a-pragmatic-restful-api – knpsck 2014-11-20 23:09:55

最优雅的方式:

YourModel = Backbone.Model.extend({ 

    name: 'modelName', 

    toJSON: function() { 
     var data = {}; 

     data[this.name] = _.clone(this.attributes); // or Backbone.Model.prototype.toJSON.apply(this) 

     return data; 
    } 

}); 

或者你也可以直接将数据传递给选项

model.save(null, { 
    data: { 
     // custom format 
    } 
}); 
+0

太棒了!是的,这是完美的。我不确定在Backbone.js中是否有设置来切换这种输出。这是我的REST服务器要求的相对罕见的格式吗?再次感谢你的帮助!我无法赞成你,因为我没有足够的声誉......大声笑。 – user2938099 2014-11-21 00:07:05