vendredi 8 septembre 2017

Modifying model in Ember

I'm putting together an app that displays a list of stores (with add/edit/delete options), and clicking on a store name takes you to the list of items in that store (again with add/edit/delete). The model:

// 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 [];
      }
  })
});

Basically model should be as:

{
    "shopName": "someName",
    "shopDetails": "someDetails",
    "shopStock": [
        {
            "name": "foo",
            "description": "bar",
            "price": "555"
        }
    ]
}

For each shop the route is dynamical:

// app.router.js
Router.map(function() {
  this.route('shop', function() {
      this.route('stock', { path: '/:shop_id/stock' });
      this.route('edit', { path: '/:shop_id/edit' });
  });
});

And in the controller I have:

actions: {
    saveItem() {
        const newItem = {
            name: this.get('itemName'),
            description: this.get('itemDescription'),
            price: this.get('itemPrice')
        };
    }
}

The question is, how do I push the newItem object into model's shopStock array?




Aucun commentaire:

Enregistrer un commentaire