ここに記載されているものと同じ質問が表示されます。Set listener for store events in a controllerがありますが、私のお気に入りのソリューションwaは1 sthis:ありコントローラー内のストアイベントのリスナーを設定する際に例外が発生する
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();
}
});
私は、次のexcpetion取得:私が代わりにコントローラ定義された関数を呼び出すしようとする、自己定義された関数を呼び出す場合
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
を、それが動作します。上記の他の方法では、関数が呼び出されていないか、ビューに画像が表示されません。ほとんどのコンソール出力はありません。
これを実装した素晴らしい例がありますか?私はこれまでのところコンポーネントイベントしか見つけません。
幸運を祈り、 ダニエル