JS Namespace和Backbone到JSON

时间:2013-06-04 17:03:01

标签: javascript backbone.js namespaces

我正在使用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],但这似乎不是很好的编码;)?

我做错了吗?

2 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

你做错了......可能使用Backbone.Collection而不是模型......请参阅:

http://jsfiddle.net/VVLhZ/2/

$("#output").html(JSON.stringify(rec.toJSON()));

它显示了你所描述的不会发生的事情。