【问题标题】:Ember Data embedded belongsTo relationship returning nullEmber 数据嵌入 belongsTo 关系返回 null
【发布时间】:2014-09-20 17:15:37
【问题描述】:

我有两个模型:

Question = DS.Model.extend

  answers: DS.hasMany("answer")

Answer = DS.Model.extend

  question: DS.belongsTo("question")

json 提供嵌入问题中的答案:

"questions": [{
  "id":"1.04"
  "text":"What is the position or title of the 1% who is being protested against?",
  "answers":[
    {
      "text":"City mayor",
      "id":"1.04.02"
    },
    {
      "text":"City council member",
      "id":"1.04.03"
    },
    {
      "text":"CEO of some company",
      "id":"1.04.01"
    }
  ]
}]

当我调用question.get('answers') 时,Ember 返回预期的答案数组。但是,如果我打电话给answer.get('question'),我会得到空值。知道为什么会这样吗?

【问题讨论】:

    标签: ember.js ember-data


    【解决方案1】:

    我认为你需要告诉 Ember 你的关系将被嵌入,这样做是这样的。

    Question = DS.Model.extend
    
      answers: DS.hasMany("answer", embedded: 'always')
    
    Answer = DS.Model.extend
    
      question: DS.belongsTo("question", embedded: 'always')
    

    话虽如此,您可能需要重新考虑您的 json 结构,嵌入式记录会导致大量重复。

    Ember 期望以下开箱即用。

    {
      "questions": [
        {
          "id": "1.04"
          "text": "What is the position or title of the 1% who is being protested against?"
          "answer_ids": ["1.04.02", "1.04.03", "1.04.01"]
        }
      ],
      "answers": [
        {
          "text": "City mayor",
          "id": "1.04.02",
          "question_id": "1.04"
        },
        {
          "text": "City council member",
          "id": "1.04.03",
          "question_id": "1.04"
        },
        {
          "text": "CEO of some company",
          "id": "1.04.01",
          "question_id": "1.04"
        }
      ]
    }
    

    【讨论】:

    • 自 2013 年中期以来,该答案对 ED 不正确。我添加了正确答案
    【解决方案2】:

    假设您的 question.get('answers') 有效,您只需升级到 Ember Data beta.10,它增加了对双方关系的支持。

    【讨论】:

      猜你喜欢
      • 2020-05-16
      • 2016-03-31
      • 2016-02-29
      • 1970-01-01
      • 2018-04-23
      • 2016-01-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多