Je suis en train de mettre en place une application qui affiche une liste de magasins (avec ajouter/modifier/supprimer des options), et en cliquant sur un nom de magasin vous emmène à la liste des articles dans ce magasin/éditer/supprimer). Le modèle:Modifier le modèle dans Ember
// app/models/shop.js
import DS from 'ember-data';
export default DS.Model.extend({
shopName: DS.attr('string'),
shopDetails: DS.attr('string'),
shopStock: DS.attr('array', {
defaultValue() {
return [];
}
})
});
Fondamentalement, le modèle devrait être aussi:
{
"shopName": "someName",
"shopDetails": "someDetails",
"shopStock": [
{
"name": "foo",
"description": "bar",
"price": "555"
}
]
}
Pour chaque magasin la route est dynamique:
// app.router.js
Router.map(function() {
this.route('shop', function() {
this.route('stock', { path: '/:shop_id/stock' });
this.route('edit', { path: '/:shop_id/edit' });
});
});
Et dans le contrôleur je:
actions: {
saveItem() {
const newItem = {
name: this.get('itemName'),
description: this.get('itemDescription'),
price: this.get('itemPrice')
};
}
}
La question est, comment puis-je pousser l'objet newItem
dans la matrice shopStock
du modèle?
Etes-vous sûr de ne pas vouloir utiliser un autre modèle pour 'shopStock'? – Lux
La solution facile semble être que vous créez un autre modèle appelé 'shopStock' et que vous modifiez le modèle' shop' pour avoir 'DS.hasMany ('shopStock', {() => []})' – Sumit