我正在使用Backbone.js构建一个单页应用程序。我引入了一个名称空间并创建了一个模块定义,如下所示:
// Declare namespace
var app = app || {};
// Recommendation Model Definition
// -------------------------------
app.Recommendation = Backbone.Model.extend({});
var rec = new app.Recommendation({id: "1", rating: "2"});
console.log(rec.toJSON());
// Chrome JS console output
Array[1]
0: Object
id: "1"
rating: "2"
__proto__: Object
length: 1
__proto__: Array[0]
问题是toJSON()方法没有返回直接JSON字符串,而是嵌套在数组中。如果我要离开命名空间,它就是做正确的事情。我显然可以只说出rec.toJSON()[0],但这似乎不是很好的编码;)?
我做错了吗?
答案 0 :(得分:0)
这是doc: http://backbonejs.org/#Model-toJSON(http://backbonejs.org/#Model-toJSON)
只需使用JSON.stringify(rec)
答案 1 :(得分:0)
你做错了......可能使用Backbone.Collection而不是模型......请参阅:
http://jsfiddle.net/VVLhZ/2/
$("#output").html(JSON.stringify(rec.toJSON()));
它显示了你所描述的不会发生的事情。