当我尝试使用.save()
保存模型时,我收到错误Converting circular structure to JSON
有趣的是,modelInstance.toJSON()工作得很好。
在backbone.js第1148行处抛出错误 这是:
params.data = JSON.stringify(options.attrs || model.toJSON(options));
以下是我设置模型的方法:
var Clip = Backbone.RelationalModel.extend({
idAttribute: "mediaItemId",
defaults: {
node: {}
}
});
var clipCollection = Backbone.Collection.extend({
model: Clip
});
var mainModel = Backbone.RelationalModel.extend({
url: '/api/v0/videostate',
relations: [
{
type: Backbone.HasMany
,key: 'videoCollection'
,relatedModel: Clip
,collectionType: clipCollection
,includeInJSON: Clip.idAttribute
,reverseRelation: {
key: 'parent',
includeInJSON: Clip.idAttribute
}
}
],
});
var modelInstance = new mainModel()
modelInstance.fetch();
加载到模型中的JSON:
答案 0 :(得分:1)
以includeInJSON: Clip.idAttribute
includeInJSON: Clip.prototype.idAttribute
像这样的东西
{
type: Backbone.HasMany
,key: 'videoCollection'
,relatedModel: Clip
,collectionType: clipCollection
,includeInJSON: Clip.prototype.idAttribute
,reverseRelation: {
key: 'parent',
includeInJSON: Clip.prototype.idAttribute
}
}
答案 1 :(得分:0)
使用上面的代码http://jsfiddle.net/ravikumaranantha/PuLxQ/6/创建了一个JSFiddle,它不会抛出任何错误。
var Clip = Backbone.RelationalModel.extend({
idAttribute: "mediaItemId",
defaults: {
node: {} //could be problem here
}
});
我只是觉得问题可能(不确定)在默认映射中有一个对象,你应该避免在默认情况下使用对象/数组,它们将在所有实例中共享。如果你可以发布fetch call的响应,那么这应该可以帮助我们进一步调试它。