我目前正在为我的用EmberJS编写的应用程序编写测试。我用的是幻影。我有以下两个模型:
幻影/模型/文件.js
export default Model.extend({
customer: belongsTo('customer'),
paperwork_products: hasMany('paperwork-product', { inverse: 'paperwork' }),幻影/模型/书面工作-product.js
export default Model.extend({
paperwork: belongsTo('paperwork', { inverse: 'paperwork_products' }),
});在我的场景中,我像这样创建数据:
const paperwork = server.create('paperwork');
const paperworkProduct = server.create('paperwork-product', { paperwork });
paperwork.paperwork_products.add(paperworkProduct);我的路线:
export default ApplicationRoute.extend({
model(params) {
return this.store.findRecord('paperwork', params.paperwork_id, { include: 'paperwork_products' }),
},
});问题是我不能在我的模板中访问paperwork.paperwork_products。它是未定义的(这里有其他书面工作属性,但没有关系)。当声明路由时,我甚至已经尝试将调试器放到我的mirage/config.js中。我的文件是存在的,他的"paperwork_products“也存在。但是我无法在我的模板中获取paperwork_products数据。我做错了什么?我想我必须改变我的一些东西:
this.get('v1/paperworks/:id');但我不知道是什么。提前感谢!
编辑:以下是我真实的Ember模型:
模型/models work.js
export default DS.Model.extend({
customer: DS.belongsTo('customer'),
paperwork_products: DS.hasMany('paperwork-product', { async: true }),
});模型/书面工作-product.js
export default DS.Model.extend({
paperwork: DS.belongsTo('paperwork'),
});因此,使用下划线的关系或使用破折号的模型存在问题...在config.js中,我尝试模拟JSONAPI后端,它工作得很好。刚把“书面工作-产品”换成了"paperwork_products“
幻影回应:
"relationships":{
"customer":{
"data":{
"type":"customers",
"id":"1"
}
},
"paperwork-products":{
"data":[
{
"type":"paperwork-products",
"id":"1"
}
]
}
}应该是:
"relationships":{
"customer":{
"data":{
"type":"customers",
"id":"1"
}
},
"paperwork_products":{
"data":[
{
"type":"paperwork_products",
"id":"1"
}
]
}
}我的其他具有hasMany关系的模型没有任何问题。
发布于 2017-10-19 10:37:19
为了确认,您是否设置了具有相同关系的Ember数据模型?如果没有这些,事情可能会发生。它工作得很好..。
如果你这样做了,你能把这些模型也贴出来吗?
此外,作为一个供参考,幻影0.3.0带有一个自动同步设置,将读取您的Ember数据模型,并创建相应的幻影模型,而不需要任何工作。真是太好了。
编辑:我建议你修改你的Ember数据模型,使用驼峰大小写的关系。如果您执行以下操作:
模型/models work.js
export default DS.Model.extend({
customer: DS.belongsTo('customer'),
paperworkProducts: DS.hasMany('paperwork-product', { async: true }),
});我希望它能正常工作,因为Ember Data会自动将camelCased关系转换为适当的JSON-API键
这对你有效吗?
https://stackoverflow.com/questions/46795044
复制相似问题