Кто-нибудь прикручивал SearchField.js ?
Пытаюсь прикрутить SearchField.js в ExtJS 4 выдает ошибку. Это токо у меня или у кого-то тоже было?
|
Никак не могу понять в чем проблема.
Скрин ошибки: ![]() Вот код окошка в котором расположено поле поиска Ext.define('MyApp.view.Firms', { extend: 'Ext.window.Window', alias : 'widget.firms', id: 'all-firms', height: 500, width: 450, layout: 'fit', title: 'Предприятия города', modal: true, x: 100, y: 50, initComponent: function() { this.dockedItems = [ { xtype: 'toolbar', dock: 'top', items: [ { xtype: 'button', iconCls: 'icon-add-firm', text: 'Добавить' } ] }, { xtype: 'toolbar', dock: 'bottom', items: [ { xtype: 'pagingtoolbar', store: 'Firms', width: 270 }, { xtype:'tbfill' }, { xtype: 'searchfield', store: 'Firms', params: {start: 0, limit: 16} } ] } ], this.items = [ { xtype: 'gridpanel', border: 'false', id: 'firm-list', title: '', loadMask: true, store: 'Firms', columns: [ { xtype: 'gridcolumn', dataIndex: 'name', flex: 1, text: 'Список предприятий' } ] } ], this.callParent(arguments); } }); Я поместил searchfield в папку с view. Вот содержание файла поиска Ext.define('MyApp.view.Search', { extend: 'Ext.form.field.Trigger', alias: 'widget.searchfield', trigger1Cls: Ext.baseCSSPrefix + 'form-clear-trigger', trigger2Cls: Ext.baseCSSPrefix + 'form-search-trigger', hasSearch : false, paramName : 'query', initComponent: function(){ this.callParent(arguments); this.on('specialkey', function(f, e){ if(e.getKey() == e.ENTER){ this.onTrigger2Click(); } }, this); }, afterRender: function(){ this.callParent(); this.triggerEl.item(0).setDisplayed('none'); }, onTrigger1Click : function(){ var me = this, store = me.store, proxy = store.getProxy(), val; if (me.hasSearch) { me.setValue(''); proxy.extraParams[me.paramName] = ''; proxy.extraParams.start = 0; store.load(); me.hasSearch = false; me.triggerEl.item(0).setDisplayed('none'); me.doComponentLayout(); } }, onTrigger2Click : function(){ var me = this, store = me.store, proxy = store.getProxy(), value = me.getValue(); if (value.length < 1) { me.onTrigger1Click(); return; } proxy.extraParams[me.paramName] = value; proxy.extraParams.start = 0; store.load(); me.hasSearch = true; me.triggerEl.item(0).setDisplayed('block'); me.doComponentLayout(); } }); Это стандартный плагин поиска, я только поменял путь к нему на 'MyApp.view.Search' Может у кого-то есть хоть какие-то идеи как можно исправить? |
console.log(store); что выводит? |
В ставил в файл "MyApp.view.Search".
initComponent: function(){ var store = this.store; console.log(store); this.callParent(arguments); this.on('specialkey', function(f, e){ if(e.getKey() == e.ENTER){ this.onTrigger2Click(); } }, this); }, Получаю ![]() Вот сам Store Ext.define('MyApp.store.Firms', { extend: 'Ext.data.Store', fields: [ {name: 'name'} ], pageSize: 16, storeId: 'Firms', proxy: { type: 'ajax', actionMethods: { create : 'POST', read : 'POST', update : 'POST', destroy: 'POST' }, url: 'firmslist', reader: { type: 'json', root: 'results' } } }); |
Ну вот...а теперь посмотрите на вашу ошибку и подумайте может ли быть у строки "Firms" метод getProxy()?
|
Я подумал и решил что не может. Но я не знаю как по другому передавать. Ведь в pagingtoolbar я Store передаю точно так же
{ xtype: 'pagingtoolbar', store: 'Firms', width: 270 } И он прекрасно его принимает и работает с ним. Как же мне Store еще передавать в поиск? |
я не говорил что запись store: 'Firms' неверна, я вам намекнул, но вы не поняли, смотрите сюда ->http://docs.sencha.com/ext-js/4-0/#!....field.Trigger и попробуйте найти свойство store
|
Т.е. этот плагин Custom Form Fields это просто самописная цацка?
|
ну в примере ведь используется Ext.ux.form.SearchField
а у вас Ext.form.field.Trigger |
У меня используется то что в примере.
Ext.ux.form.SearchField это только путь к SearchField и он тоже наследует Ext.form.field.Trigger Мой файл поиска это файл Ext.ux.form.SearchField только он лежит в другой папке и называется по другому |
Часовой пояс GMT +3, время: 16:21. |