コントローラー内のビュー起動イベントに応答しようとしています。イベントは発生しますが、コントローラー アクションは呼び出されません。
ビュー:
Ext.define("MyApp.view.Dashboard", {
extend: 'Ext.Container',
xtype: 'my_dashboard',
config: {
items: [
{
xtype: 'dataview',
listeners: {
itemtap: function(sender, index, elem, record) {
// fires with param, e.g. 'inbox'
this.fireEvent(record.get('name'));
}
}
}
...
コントローラー:
Ext.define('MyApp.controller.Dashboard', {
extend: 'Ext.app.Controller',
config: {
control: {
'my_dashboard': {
'inbox': 'showInbox',
...
}
}
},
showInbox: function () {
/* never gets called */
},
...
私は何を間違っていますか?
更新:
解決策を見つけましたが、非常にハッキリしています。bubbleEvents
データビューとビューに構成を追加すると、my_dashboard
イベントがコントローラーに到達し始めました。
ダッシュボードにはさまざまな数のアイテムを含めることができるため、どのイベントをバブルアップする必要があるかわかりません。もちろん、考えられるすべてのダッシュボード イベントをバブルアップすることもできますが、それは非常に面倒なことのように思えます。
ビューは代わりにアプリケーション イベントを起動する必要がありますMyApp.app.fireEvent()
か?