У меня почти такой же вопрос, как здесь: Установить прослушиватель событий магазина в контроллере , но я пробовал все разные решения, и ни одно из них не работает.Мое любимое решение по-прежнему:
Ext.define('Photoalbum.view.Table', {
extend : 'Ext.dataview.DataView',
xtype : 'photoalbum-table',
config : {
width: 3000,
height: 3000,
itemTpl: new Ext.XTemplate(
'<tpl for=".">',
'<div class="x-panel x-floating" style="width: {width+12}px !important; height: {height+12}px !important; top: {top}px !important; left: {left}px !important;">',
' <img src="{url}">',
'</div></tpl>'
)
},
constructor : function(config) {
Ext.apply(config, {
store : Ext.create('Photoalbum.store.Images') //I don't like using storeId (or any other id) so I create the store class
});
this.callParent([config]);
this.getStore().on('load', Photoalbum.getController('App').handleImagesLoad, this);
this.getStore().load();
}
});
Там я получаю следующее исключение:
Uncaught TypeError: Object #<Object> has no method 'getController'
Ext.define.constructorTable.js:23
Ext.apply.create.fsencha-touch-all.js:15
(anonymous function)
Ext.ClassManager.instantiatesencha-touch-all.js:15
Ext.ClassManager.instantiateByAliassencha-touch-all.js:15
Ext.apply.factorysencha-touch-all.js:15
Ext.define.factoryItemsencha-touch-all.js:15
Ext.define.addsencha-touch-all.js:15
b.implement.callParentsencha-touch-all.js:15
override.addsencha-touch-all.js:15
Ext.define.applyItemssencha-touch-all.js:15
b.registerPreprocessor.Ext.Object.each.i.(anonymous function)sencha-touch-all.js:15
b.registerPreprocessor.Ext.Object.each.i.(anonymous function).g.(anonymous function)sencha-touch-all.js:15
Ext.define.applyActiveItemsencha-touch-all.js:15
(anonymous function)sencha-touch-all.js:15
b.implement.initConfigsencha-touch-all.js:15
Ext.define.initializesencha-touch-all.js:15
Ext.define.constructorsencha-touch-all.js:15
b.implement.callParentsencha-touch-all.js:15
Ext.define.constructorsencha-touch-all.js:15
b.implement.callParentsencha-touch-all.js:15
Ext.define.override.constructorsencha-touch-all.js:15
b.implement.callParentsencha-touch-all.js:15
Ext.define.constructorsencha-touch-all.js:15
b.implement.callParentsencha-touch-all.js:15
override.constructorsencha-touch-all.js:15
Ext.apply.create.fsencha-touch-all.js:15
(anonymous function)
Ext.ClassManager.instantiatesencha-touch-all.js:15
(anonymous function)sencha-touch-all.js:15
Ext.apply.createsencha-touch-all.js:15
Ext.define.onBeforeLaunchApplication.js:30
Ext.apply.onDocumentReadysencha-touch-all.js:15
Ext.apply.onReady.nsencha-touch-all.js:15
Ext.apply.triggerReadysencha-touch-all.js:15
Ext.apply.refreshQueuesencha-touch-all.js:15
Ext.apply.refreshQueuesencha-touch-all.js:15
Ext.apply.refreshQueuesencha-touch-all.js:15
Ext.apply.onFileLoadedsencha-touch-all.js:15
(anonymous function)sencha-touch-all.js:15
Ext.apply.injectScriptElement.ksencha-touch-all.js:15
Если я вызываю самоопределяемую функцию, вместо попытки вызова определенной Контроллером функции, оно работает.Для других способов, описанных выше, либо функция не вызывается, либо изображения не отображаются на виде.В основном без вывода на консоль.
Возможно, есть какие-нибудь хорошие примеры, которые это реализовали?Пока я нахожу только составляющие события.
С наилучшими пожеланиями, Даниэль