我正在使用 Ember 从 a 中检索特定记录REST API
并将其显示在模板上。我可以从我的序列化程序控制台记录有效负载,它可以正确显示对象,但我的模板似乎无法访问它。
有效载荷具有以下结构:
{
_id: 5cb0f8bd3b74cf22b75e1a37,
name: 'Mu',
hour: 0,
day: 0,
week: 0,
month: 0,
year: 753,
size: 1,
detail: 1,
createdAt: 2019-04-12T20:44:45.691Z,
updatedAt: 2019-04-12T20:44:45.691Z,
__v: 0
}
我的 ember 路线如下所示:
import Route from '@ember/routing/route';
export default Route.extend({
model() {
this.get('store').find('world', '5cb0f8bd3b74cf22b75e1a37');
},
})
我的适配器看起来像这样:
import DS from 'ember-data';
export default DS.RESTAdapter.extend({
host: 'http://localhost:3000',
pastForType() {
return 'worlds';
},
});
这是我的世界余烬模型:
import Model from 'ember-data/model';
import DS from 'ember-data';
const { attr } = DS;
export default Model.extend({
name: attr('String'),
hour: attr('Number'),
day: attr('Number'),
week: attr('Number'),
month: attr('Number'),
year: attr('Number'),
size: attr('Number'),
detail: attr('Number')
});
负载由我的序列化器标准化:
import DS from 'ember-data';
export default DS.RESTSerializer.extend({
primaryKey: '_id',
normalizeResponse(store, primaryModelClass, payload, id, requestType) {
payload = { worlds: payload };
console.log(payload);
return this._super(store, primaryModelClass, payload, id, requestType);
}
});
当路由被调用时,控制台输出:
Object { worlds: {…} }
对象内的数据是正确的,但是当我尝试{{model.name}}
在我的把手模板中访问时,没有显示任何内容。
我是否无法以某种方式将对象传递给模板?我只是指错了吗?
正如评论中已经提到的,您错过了在路线model
挂钩中返回。因此,undefined
即使您的store.find()
请求通过预期记录正确解析,路由的模型也是如此。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句