在这个应用程序中,事件是发生的事情,而感觉是描述您对它的感受的嵌套对象。这是我的事件模型:
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事件了,也有感觉了。但是,感情并没有被分配相反的关系。在感觉上,属性“事件”被赋予值“空”。在我的 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
现在已经有很多小时了,我不明白为什么这种关系不是由骨干关系设定的。