Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Backbone.js 主干关系未设置父模型,或反向关系\u id_Backbone.js_Backbone Relational - Fatal编程技术网

Backbone.js 主干关系未设置父模型,或反向关系\u id

Backbone.js 主干关系未设置父模型,或反向关系\u id,backbone.js,backbone-relational,Backbone.js,Backbone Relational,在这个应用程序中,事件是发生的事情,感觉是一个嵌套的对象,描述你对它的感觉。以下是我的事件模型: window.Incident = Backbone.RelationalModel.extend({ urlRoot: "/incidents", idAttribute: "_id", relations:[{ type: Backbone.HasMany, key: 'feelings', relatedModel: 'Feeling', reverseR

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

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'
});
在这一点上,我可以积垢事件,也可以感受。但是,感情并没有被赋予相反的关系。在某种意义上,属性“incident”被赋予值“null”。在我的MongoDB集合中,我得到两个不相关的对象:

{ "description" : "I feel sad", "_id" : ObjectId("50d3b1462ff17f07cf000002") }
{ "name" : "asdf", "intensityBefore" : "asdf", "intensityAfter" : "asdf", "incident" : null, "_id" : ObjectId("50d3b14e2ff17f07cf000003") }
我把整个项目都准备好了

注意,此应用程序是由Christophe Coenraets开发的入门应用程序:


现在已经过了好几个小时了,我无法理解为什么关系不是由backbone relational设置的。

您可能需要在情感模型上声明BackbonRelational.HasOne,如下所示:

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

如果您可以在jsfiddle中复制,则会有所帮助:)