我有2个建立了一对一关系的模型。
models / character.js:
export default DS.Model.extend(Validations, {
name: DS.attr('string');
weapon: DS.belongsTo('weapon', {async:true}).
});
models / weapon.js
export default DS.Model.extend(Validations, {
weapon: DS.attr('string'),
character: DS.belongsTo('character', {async: true}),
});
我创建了一个newCharacter记录,并在控制器中设置了武器属性,如下所示:
let weaponChoice = this.get('weaponSelected');
//find weapon based on weapon name
let weaponPromise = this.store.query('weapon', {
filter: {
weapon: weaponChoice
}
}).then( (items) => {
//set the weapon record here
newCharacter.set('weapon', items.get('firstObject'));
newCharacter.save();
});
然后在另一个页面上,尝试像这样在我的模板中显示武器:
{{model.weapon}}
在显示时显示为:
<(unknown):ember300>
当我在控制台中查看ember标签时,这很有意义,因为这就是显示的内容。但是,当我查看数据库时,它表明武器列具有ID以引用正确的武器。
该武器已保存在我的数据库中,但是当我想在页面上显示它时,似乎无法正确访问它。我如何获得它?即使我在路径中访问武器模型,它仍然会显示相同的内容。有人能启发我做错什么吗?
这是我目前的参考路线:
export default Route.extend({
model: function (params) {
return this.store.findRecord('character', params.character_id);
}
});