0

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

难道我做错了什么?

4

2 回答 2

0

这是文档: http://backbonejs.org/#Model-toJSON( http://backbonejs.org/#Model-toJSON)

只需使用JSON.stringify(rec)

于 2013-06-04T17:25:47.510 回答
0

你做错了什么......可能使用 Backbone.Collection 而不是模型......看到这个:

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

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

它表明你所描述的没有发生。

于 2013-06-04T17:32:53.780 回答