0

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 -コントローラ

4

1 に答える 1

0

これは、紛らわしいコードを書く確実な方法です。代替クラス名機能は、特定のコンポーネントのクラス名が異なっていた以前の Ext バージョンとの下位互換性を提供するために考案されました。アプリケーションの保守を難しくしたい場合を除き、アプリケーション コードでは使用しないでください。

于 2013-09-17T18:52:40.380 に答える