0

概括

我在使用 Ember-Model 时遇到了一点问题,试图在两个模型之间建立独特的关系。

根据我在 SO、 Ember 论坛#emberjs上收到的当前回复。我开始相信这个问题没有内置的解决方案,我正在重新格式化我的问题以指定需要什么。

细节

我目前正在使用全套债务人信息填充模板。所有信息都来自对服务器的多次调用。

第一位是基本的债务人信息。这部分很简单,因为我可以使用模型挂钩和动态段来检索它。

我的服务器返回一个债务人的 JSON ......这是简短的版本:

{
  "debtor" = {
    "debtor_id": 1003,
    "debtor_name": Steve,
     //... more JSON
    "debtor_contact_id": 1345
  }
}

Debtor 的动态段填充了 的值debtor_id,但也注意到这个债务人有一个debtor_contact_id。从服务器检索到的每条债务人记录都有一个唯一的debtor_contact_id. 在数据库中,这个值是一个“外键”,它将告诉哪个联系人表属于哪个债务人表。

如果没有这个键/值对,就无法预测哪些联系信息与哪个债务人相关。

我目前有“联系人” belongsTo“债务人”,但这还不足以完成这项工作。

何时填写“联系人”模型。Ember-Model 需要知道将值构建debtor_contact_id到 ajax URL作为查询参数,以便获取正确的 API。

我仍在学习所有这些东西,到目前为止,我还无法完全遵循任何教程,因为我的用例在某处需要额外的步骤。

这是我希望看到的预期行为:

  1. 模型挂钩将按预期工作以拉动特定债务人并将其放入“债务人”模型(这部分目前工作正常)
  2. 不知何故从有效载荷中读取了“debtor_contact_id”
  3. 该值作为服务器查询的一部分添加以查找单独的 API
  4. 生成的联系信息将被拉入“联系”模型
  5. 希望两个对应的模型都返回后可以建立 hasMany/belongsTo 关系。
  6. 在进入我的模板之前,所有这些都需要在一个承诺中完成

您还可以在以下网址找到问题:discuss.emberjs.com,如果这是更合适的讨论地点。

如果这没有意义,我可以详细说明...谢谢!

4

1 回答 1

0

假设您使用的是 ember-data,除了您需要添加的模型属性:

debtor_contact: DS.belongsTo('name_of_the_other_model')

然后,这为您提供了一个承诺,该承诺将根据需要解析为其他模型。它不会立即解析,但模板中的绑定变量会在解析时更新。如果设置正确,将为您进行另一个 API 调用。

http://emberjs.com/api/data/classes/DS.html#method_belongsTo

如果您出于某种原因需要强制解决关系,我在这里给出的答案也可能会有所帮助:Ember Unbound & Belongsto

于 2014-08-01T23:10:15.730 回答