I have a list that displays a list of restaurants with a restaurant logo, etc.
View
Ext.define('Test.view.Contacts', { extend: 'Ext.List', xtype: 'contacts', config: { title: 'Stores', cls: 'x-contacts', store: 'Contacts', itemTpl: [ '<div class="headshot" style="background-image:url(resources/images/logos/{logo});"></div>', '{name}', '<span>{add1}</span>' ].join('') } });
When you click a restaurant, I want it to show a different list based on the item that was used.
Second view
Ext.define('Test.view.Menu', { extend: 'Ext.List', xtype: 'contact-menu', config: { title: 'Menu', cls: 'x-contacts', store: 'Contacts', itemTpl: [ '<div>{item}</div>' ].join(''), }, });
Models
Ext.define('Test.model.Contact', { extend: 'Ext.data.Model', config: { fields: [ 'name', 'logo', 'desc', 'telephone', 'city', 'add1', 'post', 'country', 'latitude', 'longitude' ], proxy: { type: 'ajax', url: 'contacts.json' } }, hasMany: { model: "Test.model.Menus", name: 'menus' } }); Ext.define('Test.model.Menus', { extend: 'Ext.data.Model', config: { fields: [ 'item' ] }, belongsTo: "Test.model.Contact" });
Score
Ext.define('Test.store.Contacts', { extend: 'Ext.data.Store', config: { model: 'Test.model.Contact', autoLoad: true, //sorters: 'name', grouper: { groupFn: function(record) { return record.get('name')[0]; } }, proxy: { type: 'ajax', url: 'contacts.json', reader: { type: 'json', root: 'stores' } } } });
Json
{ "stores": [{ "name": "Science Gallery", "logo": "sciencegallery.jpg", "desc": "Get some food", "telephone": "016261234", "city": "Dublin", "add1": "Pearse Street", "post": "2", "country": "Ireland", "latitude": "53.34422", "longitude": "-6.25006", "menu": [{ "item": "SC Sandwich" }, { "item": "SC Toasted Sandwich" }, { "item": "SC Panini" }, { "item": "SC Ciabatta" }, { "item": "SC Burrito" }] }, { "name": "Spar", "logo": "spar.jpg", "desc": "Get some food", "telephone": "016261234", "city": "Dublin", "add1": "Mayor Street", "post": "2", "country": "Ireland", "latitude": "53.34422", "longitude": "-6.25006", "menu": [{ "item": "Spar Sandwich" }, { "item": "Spar Toasted Sandwich" }, { "item": "Spar Panini" }, { "item": "Spar Ciabatta" }, { "item": "Spar Burrito" }] }] }
I want to show a list of menu items (item, item, item ...) for the selected restaurant, but when I use the nested list, I have to use the same template as the previous list that does not fit my needs. At the moment, I get the right amount of items, but nothing is displayed. Could you help me where I'm wrong, thanks.