Ember.js 如何将子类数据模型加载到超类的路径中

Ember.js 如何将子类数据模型加载到超类的路径中,ember.js,ember-data,Ember.js,Ember Data,有没有办法将子类数据模型加载到超类的路由中 例如,我有一个名为Vehicle的超类和一个名为Car的子类 我有这样的路线: /vehicle/21/edit 在这个例子中,车辆21是一辆汽车。相应地,我的API返回以下有效负载数据: {"car": {/* lots of data */}} 当route vehicle.edit尝试加载此数据时,出现以下错误: Error while processing route: vehicle.edit payload.data is null

有没有办法将子类数据模型加载到超类的路由中

例如,我有一个名为Vehicle的超类和一个名为Car的子类

我有这样的路线:

/vehicle/21/edit
在这个例子中,车辆21是一辆汽车。相应地,我的API返回以下有效负载数据:

{"car": {/* lots of data */}}
当route vehicle.edit尝试加载此数据时,出现以下错误:

Error while processing route: vehicle.edit payload.data is null
我可以通过更改API来解决这个问题,这样它就可以使用vehicle作为JSON响应中的根节点,但我想知道Ember是否有办法自动将子类转换为超类,例如,将car JSON响应加载到vehicle实例中


提前谢谢

如今,js/data只支持关系

即,您可以定义以下模型:

//models/blog-post.js
import DS from 'ember-data';

export default DS.Model.extend({
  title: DS.attr('string'),
  post: DS.attr('string'),
  comments: DS.hasMany('comment', { polymorphic: true }) //i.e. pic-comment, text-comment
});
您需要从存储调用多态数据:

this.get('store').findRecord('vehicle', 21);

但这在目前是不可能的。这里有一个。因此,也许这在将来是可能的。

根据有效负载的外观,您可以通过两种不同的方式实现这一点。 如果您可以访问有效负载是如何发送的,那么处理它的最优雅的方法就是使用hasMany relationship。
否则,在路由中,您可以在模型挂钩中进行调用,并返回数据供vehicle使用。编辑路由。

那么拥有子类有什么意义?@ChristopherMilne正是我提出这一问题的原因,因为解决方法违背了子类的目的。谢谢你的评论。谢谢,切拉格。你能详细说明你的答案吗?我需要更多的信息,你想把它放在一个小圈子里吗?谢谢,乌阿明。这不是我所期望的,因为这些车辆和汽车的装载没有关系。它是对/vehicle/:id/edit路线的直接调用,直接从车辆/汽车商店提取,而不是相关路线,即/car-driver。