Рассмотрим следующие 2 модели: автомобиль и владелецEmber BelongsTo Assertion Failed
У меня есть запись автомобиля с текущим владельцем (боб Джоунс) и у меня есть владелец записи (Боб Джонс) с подробностями ... адрес , телефон и т.д.
в моей форме автомобиля (модель автомобиля), у меня есть это:
export default Model.extend({
"owner_id": DS.belongsTo('owner'),
"year": attr(''),
"model": attr(''),
"make": attr('')
})
хранящегося в конце DB, является идентификатором «12345», соответствующий владелец записи Боба Джонса.
Когда я загрузить автомобиль запись (2015 Jaguar), он также будет подключаться к записи Боба Джонса, который говорит мне свой телефон, адрес и т.д. Например, если я распечатать
{{owner_id.id}} - {{owner_id.name}}
Я буду шоу:
12345 - Боб Джонс
Мой вопрос, что произойдет, если я изменю владелец автомобиля. Если я выбираю из выпадающего списка
{{my-select
name="owner_id"
content=ownerList
selection=owner_id.id
prompt="select an owner"
required=true
}}
От этого компонента:
import Ember from 'ember';
export default Ember.Component.extend({
content: [],
prompt: null,
optionValuePath: 'value',
optionLabelPath: 'label',
init: function() {
this._super(...arguments);
if (!this.get('content')) {
this.set('content', []);
}
},
actions: {
change: function() {
let selectedIndex = this.$('select')[0].selectedIndex;
let content = this.get('content');
// decrement index by 1 if we have a prompt
let hasPrompt = !!this.get('prompt');
let contentIndex = hasPrompt ? selectedIndex - 1 : selectedIndex;
let _selection = content[contentIndex];
this.sendAction('willChangeAction', _selection);
if (this.get('optionValuePath')) {
this.set('selection', _selection[this.get('optionValuePath')]);
} else {
this.set('selection', _selection);
}
this.sendAction('didChangeAction', _selection);
}
}
});
и изменить значение ... Я получаю эту ошибку:
идентификатор записи, то не может быть изменена после него находится в загруженном состоянии
Как вы собираетесь обновлять автомобиль Jaguar 2015 года ord для изменения владельца и загрузки деталей нового владельца?
Какой компонент вы используете? Мне любопытно, потому что это изменяет правильность настройки компонента в моем ответе. – xcskier56
обновленный вопрос, чтобы отразить код компонента. – Matt