首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >backbone.relational - key,keySource,keyDestination

backbone.relational - key,keySource,keyDestination
EN

Stack Overflow用户
提问于 2012-07-05 06:10:58
回答 1查看 365关注 0票数 3

我有以下两种模型:UserJob

每个user只能有一个作业。

user.attributesjob.attributes看起来如下(1):

(1)

代码语言:javascript
复制
user.attributes = {
    id: 1,
    name: 'barName',
    job_id: 5
}

job.attributes = {
    id: 5,
    name: 'fooJob'
}

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

(2)

代码语言:javascript
复制
User = Backbone.ModelRelation.extend({
    relations: [
        {
            type: Backbone.HasOne,
            key: 'job_id',
            keyDestination: 'job',
            relatedModel: User
        }
    ]
});

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

(3)

代码语言:javascript
复制
user.attributes = {
    id: 1,
    name: 'barName',
    job: job.attributes
}

如您所见,来自job_iduser.attributes丢失了。

因此,如果我向服务器发出PUT请求,服务器就会抱怨缺少的job_id属性。

有什么想法吗?我如何修正(3)以使job_id保持在user.attributes (4)中?

(4)

代码语言:javascript
复制
user.attributes = {
    id: 1,
    name: 'barName',
    job_id: 5
    job: job.attributes
}

参考资料:

保罗·乌瑟尔 - 骨干关系

EN

回答 1

Stack Overflow用户

发布于 2014-05-30 14:25:07

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

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

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

这取决于可以配置的服务器端框架。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11338656

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档