backbone.relational - key, keySource, keyDestination



我有以下两种型号:UserJob
每个user只能有一个作业。
user.attributesjob.attributes如下所示 (1):

(1)

user.attributes = {
    id: 1,
    name: 'barName',
    job_id: 5
}
job.attributes = {
    id: 5,
    name: 'fooJob'
}

假设我想在这两个模型之间建立关系:外键应job_id

(二)

User = Backbone.ModelRelation.extend({
    relations: [
        {
            type: Backbone.HasOne,
            key: 'job_id',
            keyDestination: 'job',
            relatedModel: User
        }
    ]
});

使用代码 (2),结果将是:

(三)

user.attributes = {
    id: 1,
    name: 'barName',
    job: job.attributes
}

如您所见,user.attributesjob_id丢失了。
因此,如果我向服务器发出 PUT 请求,服务器会抱怨缺少 job_id 属性。
任何想法如何修复 (3) 以便将job_id保留在 user.属性中,例如 (4)?

(四)

user.attributes = {
    id: 1,
    name: 'barName',
    job_id: 5
    job: job.attributes
}

参考:
保罗·尤索尔 - 骨干关系

我的解决方法是更改服务器读取 JSON 的方式。

因此,服务器将读取{user:{job:{id:1}}}而不是{user:{job_id:1}}

请注意,我们包含一个带有 id 属性的子对象,而不是使用 job_id 平面属性。

根据可以配置的服务器端框架。

相关内容

  • 没有找到相关文章

最新更新