骨干关系不设置父模型,或反向关系_id

时间:2012-12-21 00:56:47

标签: backbone.js backbone-relational

在这个应用程序中,事件发生了,感觉是一个嵌套对象,描述了你对它的感受。这是我的事件模型:

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集合中,我得到了这两个不相关的对象:

{ "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

现在已经很多个小时了,我无法理解为什么这种关系不是由骨干关系设定的。

1 个答案:

答案 0 :(得分:0)

您可能需要在Feelings模型上声明BackboneRelational.HasOne,如下所示:

window.Feeling = Backbone.RelationalModel.extend({
    urlRoot: '/incidents',
    idAttribute: '_id',
    relations:[{
        type: Backbone.HasOne,
        key: 'incident',
        relatedModel: 'Incident'
    }]
});