I will try to explain the situation.
I have three models, lets call them: room, furnitures, chair.
Now, lets see how the models are declared. room, located in lib/room/app/room.js
export default DS.model.extend({
name: DS.attr('string'),
mostPreciousFurniture: DS.belongsTo('furniture')
});
furniture, located in lib/furniture/app/furniture.js
export default DS.model.extend({
name: DS.attr('string'),
type: DS.attr('string') // type of the furniture(chair, table, etc...)
});
chair, located in lib/chair/app/chair.js
import Furniture from 'web/models/furniture'
export default Furniture.extend({
material: DS.attr('string')
});
So we have three model, room with a belongsTo relationships to furniture, chair who is a 'member' of furniture, and furniture who is a basic model.
Now I can set the value of room.mostPreciousFurniture with chair for example(in a form), and when I save my model, my backend server receive the id of the furniture.
But when I try to fetch this relationships in the store, it is not found. This is a problem, because if I want to edit my room model, I cannot access to the previous value of mostPreciousFurniture.
I set the value of mostPreciousFurniture in a components,
setMostPrecious(params)
{
let type = params.type; // type here is chair for example
this.get('store').find(type, params.id).then((furniture) => {
this.get('room').set('mostPreciousFurniture', furniture);
});
}
If I console.log my relationships here, I will say that it is filled, which is a good start. But as I already say, once I refresh my page I can access to the data of room except the mostPreciousFurniture.
I may have missed some information, if you need more please tell me. Any tips is appreciated.
Aucun commentaire:
Enregistrer un commentaire