1

.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:

ここに画像の説明を入力

4

2 に答える 2

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
    }
}
于 2013-10-20T20:12:30.423 に答える
0

上記のコードhttp://jsfiddle.net/ravikumaranantha/PuLxQ/6/でJSFiddle を作成しましたが、エラーは発生しません。

var Clip = Backbone.RelationalModel.extend({
    idAttribute: "mediaItemId",
    defaults: {
        node: {} //could be problem here
    }
});

デフォルトマップにオブジェクトがあると(よくわかりませんが)問題が発生する可能性があると感じています。デフォルトでオブジェクト/配列を使用しないでください。それらはすべてのインスタンスで共有されます。fetch 呼び出しからの応答を投稿できる場合は、さらにデバッグするのに役立ちます。

于 2013-10-20T17:30:30.773 に答える