具有骨干关系的非固定模型的空值

时间:2019-05-07 14:27:12

标签: json-api backbone-relational

我使用Backbone-relational和Backbone-relational-jsonapi来扩展解析方法。 版本:

  • Backbone-relational.js 0.10.0
  • 骨干1.4.0
  • 下划线1.9.1

服务器是flask-rest-jsonapi的自定义实现(由于某些性能问题,未加载关系,仅填充链接)

但是当我获取模型时,我的属性键中有一个空值(而不是“未加载” /“非同步”模型)

我已经尝试扩展解析以在数据中设置我的模型,以查看它是否可以工作,但是一旦我获取该模型,它将变为null。 我尝试使用HasMany键(请参阅ContactMail),并且一切正常。 与包含“ collaborateur”相同

这是我的模特:

models = {}
models.ContactModel = Backbone.RelationalModel.extend({
        defaults: {
           type: 'contact',
            },
        idAttribute: 'id',
        relations: [
        {
            type: 'HasMany',
            relatedModel: models.ContactMailModel,
            collectionType: models.ContactMailCollection,
            key: 'LesMails'
        },
        {
            type: 'HasOne',
            relatedModel: models.CollaborateurModel,
            key: 'collaborateur'
        }],
        default_endpoint: 'contact',
        endpoints: ['contact', 'all_contact']
        });
    Backbone.modelFactory.registerModel(models.ContactModel);

    models.CollaborateurAdresseModel.prototype.relations = [
        {
            type: 'HasOne',
            relatedModel: models.CollaborateurModel,
            key: 'collaborateur'
        }];
    Backbone.modelFactory.registerModel(models.CollaborateurAdresseModel);

这是我的数据(从jsonapi服务器返回):GET:/ api / contact / 2000004

{
    "data": {
        "type": "contact",
        "attributes": {
            "id": 2000004,
            "IdCollaborateur": 500004
            },
        "relationships": {
            "collaborateur": {
                "links": {
                    "self": "/api/contact/2000004/relationships/collaborateur",
                    "related": "/api/contact/2000004/collaborateur"
                    }
                }
            },
        "jsonapi": {"version": "1.0"}
}

my_contact = new ContactModel({id: 2000004})
my_contact.fetch().done(function(){
    my_contact.get('collaborateur').fetch()
};

在这种情况下,如何获取CollaborateurModel而不是null?

感谢您的答复。

0 个答案:

没有答案