Ember не может отображать значение ownTo в шаблоне - PullRequest
0 голосов
/ 30 октября 2018

У меня есть две модели с отношениями один к одному.

Модели / character.js:

export default DS.Model.extend(Validations, {
    name: DS.attr('string');
    weapon: DS.belongsTo('weapon', {async:true}).
});

модель / 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 в моей консоли, это имеет смысл, потому что это то, что она показывает. Однако, когда я смотрю на свою базу данных, это показывает, что в столбце оружия указан идентификатор, указывающий на правильное оружие.

Оружие сохраняется в моей БД, но я не могу правильно получить к нему доступ, когда хочу отобразить его на странице. Как я могу получить к нему доступ? Даже когда я даю доступ к модели оружия на моем маршруте, она все равно показывает то же самое. Кто-нибудь может просветить меня о том, что я делаю неправильно?

Вот мой маршрут для справки:

export default Route.extend({
    model: function (params) {
        return this.store.findRecord('character', params.character_id);
    }
});
...