【问题标题】:Backbone relational one to one relation, how to get parent's model data?骨干关系一对一关系,如何获取父模型数据?
【发布时间】:2016-03-04 09:20:44
【问题描述】:
exampleData = {
    id: 1,
    name: 'A',
    house: {
        address1: 'California'
        address2: 'California'
    }
}

House = Backbone.RelationalModel.extend({
    urlRoot: function urlRoot() {
        var personId = this.get('person').id; // this.get('person') is null

    }
});


Person = Backbone.RelationalModel.extend({
    relations: [
        { // Create a (recursive) one-to-one relationship
            type: Backbone.HasOne,
            key: 'house',
            relatedModel: House,
            reverseRelation: {
                type: Backbone.HasOne,
                key: 'person'
            }
        }
    ],

    initialize: function() {
    }
});

我需要在House模型中获取人的模型数据,

但是 this.get('person') 返回 null,即使我设置了 reverseRelation。

如何在内部获取 Person 的数据?

【问题讨论】:

  • 你不应该在 House Model 中定义一个 belongsTo 关系吗?
  • houseModel.get("person")

标签: backbone.js backbone-relational


【解决方案1】:

我认为您的代码将无法正常工作。模型的定义有点错误。定义关系时,它应该是对对象的引用,而不是字符串值:

relatedModel: House // instead of 'House' as a string

然后您可以通过 getter 引用每个模型,类似:

houseModel.get("person");
personModel.get("house");

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-05-30
    • 1970-01-01
    • 1970-01-01
    • 2012-08-10
    • 2012-06-30
    • 1970-01-01
    • 2014-05-06
    • 1970-01-01
    相关资源
    最近更新 更多