У меня есть dataview, который отображает данные json из магазина. Как фильтровать магазин или данные в сенчане?
Ext.define('app.view.Abouttest', { extend: 'Ext.Panel', xtype: 'abouttest',config: { title: 'Player Info', iconCls: 'user', layout: 'vbox', scrollable: true, height: 800, fullscreen: false, items: [ { docked: 'top', xtype: 'toolbar', id: 'toolbarId', title: 'Player Info' }, { xtype: 'dataview', store: 'Articles', itemTpl: '<div>{content}</div>', height: 400 } ] } }); </pre>
это модель и магазин, который также используется в вложенном списке в другой точке зрения:
<pre> Ext.define('app.model.Article', { extend: 'Ext.data.Model', config: { fields: [ 'id', {name: 'parent', type: 'int'}, {name: 'title', type: 'string'}, {name: 'content', type: 'string'} ] } }); Ext.define('app.store.Articles', { extend: 'Ext.data.Store', requires: ['app.model.Article'], config: { model: 'app.model.Article', autoLoad: true, proxy: { type: 'ajax', url: 'resources/json/articles.json', noCache: false, enablePagingParams: false, reader: { type: "json", rootProperty: 'pages' } } } }); </pre>
Какого код может быть добавлена к представлению Abouttest для фильтрации данных хранилища для отображения одной записи на основе по его ID?
Вот окончательный вариант зрения
<pre> Ext.define('app.view.Abouttest', { extend: 'Ext.Panel', xtype: 'abouttest', config: { title: 'Player Info', iconCls: 'user', layout: 'vbox', scrollable: true, height: 800, fullscreen: false, items: [ { docked: 'top', xtype: 'toolbar', id: 'toolbarId' }, { xtype: 'dataview', store: 'Articles', itemTpl: '<div>{content}</div>', height: 400 } ] }, initialize: function(eOpts) { var store = Ext.getStore('Articles'); if (store.loading) { store.on('load', function() { store.filterBy(function(rec) { return rec.get('id') === '246'; }); }); } } }); </pee>
Фильтрация может быть достигнуто путем добавления инициализировать функцию фильтрации при загрузке магазина. – AlanP