Ember 使用 JSONAPI 的数据“include”不会加载整个负载
Ember Data `include` Using JSONAPI Does Not Load Entire Payload
使用 Ember-2.6 和 Rails-4.2.7 后端 JSONAPI -Resources-0.8.0.beta2 gem.
我注意到,有时当我尝试 include
其他资源时,它们会返回到我的有效负载中,但最终不会正确地出现在 Ember 存储中。然后事实证明,我依赖于这些资源的代码没有按预期运行。
那么,为什么当我的负载包含所有这些额外资源时,它们最终没有出现在 Ember 存储中?为什么 Ember 数据不报告它没有处理有效载荷的元素?
事实证明,我的 Ember-数据模型中的关系声明使用驼峰式命名,但必须使用破折号声明。
例如:
// 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 数据模型看不到这些交易。要修复它,我的 hasMany
声明需要使用破折号的名称(这也适用于您可能拥有的任何 belongsTo
声明):
/**
* The investment can have many transactions.
*/
investmentTransactions: DS.hasMany('investment-transactions'),
使用 Ember-2.6 和 Rails-4.2.7 后端 JSONAPI -Resources-0.8.0.beta2 gem.
我注意到,有时当我尝试 include
其他资源时,它们会返回到我的有效负载中,但最终不会正确地出现在 Ember 存储中。然后事实证明,我依赖于这些资源的代码没有按预期运行。
那么,为什么当我的负载包含所有这些额外资源时,它们最终没有出现在 Ember 存储中?为什么 Ember 数据不报告它没有处理有效载荷的元素?
事实证明,我的 Ember-数据模型中的关系声明使用驼峰式命名,但必须使用破折号声明。
例如:
// 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 数据模型看不到这些交易。要修复它,我的 hasMany
声明需要使用破折号的名称(这也适用于您可能拥有的任何 belongsTo
声明):
/**
* The investment can have many transactions.
*/
investmentTransactions: DS.hasMany('investment-transactions'),