【问题标题】:Ember Data `include` Using JSONAPI Does Not Load Entire Payload [closed]Ember 数据`include` 使用 JSONAPI 不会加载整个有效负载 [关闭]
【发布时间】:2017-01-24 20:08:42
【问题描述】:

使用 Ember-2.6Rails-4.2.7 后端 JSONAPI-Resources-0.8.0.beta2 gem。

我注意到,有时当我尝试 include 附加资源时,它们会返回到我的有效负载中,但最终不会正确地出现在 Ember 存储中。事实证明,我的代码依赖于这些资源并没有按预期运行。

那么,为什么当我的有效负载包含所有这些额外资源时,它们最终不会出现在 Ember 存储中?为什么 Ember Data 不报告其未处理的有效负载元素?

【问题讨论】:

    标签: ember.js ember-data json-api jsonapi-resources


    【解决方案1】:

    事实证明,我在 Ember-Data 模型中的关系声明使用的是驼峰式命名,但必须使用破折号声明

    例如:

    // Example Investment model (investment.js)
    export default DS.Model.extend({
      // ...
      /**
       * The investment can have many transactions.
       */
      investmentTransactions: DS.hasMany('investmentTransactions'),
      // ...
    });
    

    ...在大多数情况下都可以正常工作。但是,当尝试在查询中侧载(include)我的数据时:

    store.findRecord('investment', someId, { include: 'investment-transactions' });
    

    ...将带回投资负载以及所有投资交易,但是我的 Ember Data 模型看不到这些交易。为了解决这个问题,我的 hasMany 声明需要使用一个破折号的名称(这也适用于您可能拥有的任何 belongsTo 声明):

    /**
     * The investment can have many transactions.
     */
    investmentTransactions: DS.hasMany('investment-transactions'),
    

    【讨论】:

      猜你喜欢
      • 2015-10-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多