Ошибка сохранения базовой реляционной модели
Я получаю ошибку, когда пытаюсь сохранить модель с помощью.save()
Converting circular structure to JSON
Самое смешное, что modelInstance.toJSON() работает просто отлично.
Ошибка выдается в строке 1148 backbone.js, которая:
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, загруженный в модель:
2 ответа
+ Изменить 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
}
}
Создал JSFiddle с приведенным выше кодом, http://jsfiddle.net/ravikumaranantha/PuLxQ/6/, он не выдает никакой ошибки.
var Clip = Backbone.RelationalModel.extend({
idAttribute: "mediaItemId",
defaults: {
node: {} //could be problem here
}
});
Я просто чувствую, что проблема может быть (не уверен) с наличием объекта в карте значений по умолчанию, вы должны избегать использования объектов / массивов в значениях по умолчанию, они будут распределены между всеми экземплярами. Если вы можете опубликовать ответ от получения вызова, это должно помочь нам отладить его дальше.