3

このアプリでは、インシデントは起こったことであり、フィーリングはネストされたオブジェクトであり、それについてどのように感じたかを説明します。これが私のインシデントモデルです:

window.Incident = Backbone.RelationalModel.extend({

urlRoot: "/incidents",

idAttribute: "_id",

relations:[{
    type: Backbone.HasMany,
    key: 'feelings',
    relatedModel: 'Feeling',
    reverseRelation: {
        key: 'incident',
        includeInJSON: '_id'
    }
},
{
    type: Backbone.HasMany,
    key: 'thoughts',
    relatedModel: 'window.Thought',
    reverseRelation: {
        key: 'incident',
        includeInJSON: '_id'
    }
}],
 // rest of model...
});

そして、ここにフィーリングモデルがあります:

window.Feeling = Backbone.RelationalModel.extend({
  urlRoot: '/incidents',
  idAttribute: '_id'
});

この時点で、インシデントと感情を CRUD できます。しかし、感情には逆の関係が割り当てられていません。ある意味では、属性「インシデント」には値「null」が与えられます。私の MongoDB コレクションでは、次の 2 つの無関係なオブジェクトを取得します。

{ "description" : "I feel sad", "_id" : ObjectId("50d3b1462ff17f07cf000002") }
{ "name" : "asdf", "intensityBefore" : "asdf", "intensityAfter" : "asdf", "incident" : null, "_id" : ObjectId("50d3b14e2ff17f07cf000003") }

https://github.com/mhurwi/cbt-app/tree/relationalに完全なプロジェクトがあります。

このアプリは Christophe Coenraets によるスターター アプリから構築されていることに注意してください: https://github.com/ccoenraets/nodecellar

何時間も経ちましたが、バックボーンリレーショナルによって関係が設定されていない理由がわかりません。

4

1 に答える 1

0

次のように、Feelings モデルで BackboneRelational.HasOne を宣言する必要がある場合があります。

window.Feeling = Backbone.RelationalModel.extend({
    urlRoot: '/incidents',
    idAttribute: '_id',
    relations:[{
        type: Backbone.HasOne,
        key: 'incident',
        relatedModel: 'Incident'
    }]
});
于 2013-11-09T15:38:04.030 に答える