ExtJS 4.2.1 のコントローラーの代替クラス名が、期待どおりに機能しないことに気付きました。
Ext.define('AppName.controller.subnamespace.Controller1', {
extend: 'Ext.app.Controller',
alternateClassName: 'AppName.Ctrl1',
// ...
});
アプリ (または任意のコントローラー) の getController メソッドを使用してコントローラーにアクセスすると、両方の名前 (長い名前と代替の名前) で機能しますが、コントローラーの 2 つの異なるインスタンスが返されます。
var ctrlInstance1 = AppName.app.getController('AppName.controller.subnamespace.Controller1'),
ctrlInstance2 = AppName.app.getController('AppName.Ctrl1');
console.log(ctrlInstance1 === ctrlInstance2); // --> false
これは意図した動作ですか、それともバグですか? バグの場合は、バグレポートを提出するつもりです...
ありがとう
追伸:公式の sencha フォーラムでもこの質問をしましたが、今のところ回答がありません: http://www.sencha.com/forum/showthread.php?271970-Alternate-class-name-in -コントローラ