0

http://www.sencha.com/forum/showthread.php?140992-Ext.define-and-the-Scopeとまったく同じ問題が発生しましたが、残念ながらスレッドに明確な答えがありません。

scope:thisボタンからウィンドウにスコープを変更するだけなので、それは機能しないことを私は知っています、そして私の検索とスレッドで与えられた提案に基づいて、私は唯一の解決策は

  1. グリッドパネルを拡張するときにエイリアスを定義します。
  2. this.up('alias')グリッドパネルを取得するために使用してDOMをトラバースします。

それは本当に唯一の解決策ですか?ありがとう。

4

2 に答える 2

2

投稿の例に基づいて、これを試してください...

initComponent: function() {

    ...
    var me = this;

    me.tbar = [
        {
            text: 'Start',
            iconCls: 'icon-start'
        }, {
            text: 'Stop',
            iconCls: 'icon-stop'
        }, {
            text: 'Eintrag hinzufügen',
            iconCls: 'icon-add',
            scope: me,
            handler: function() {
                me.addEntry();
            }
        }
    ],
}
于 2012-06-29T11:43:29.157 に答える
1

はい。コンポーネントのハンドラーのスコープは通常、そのハンドラーが呼び出されたインスタンス化されたコンポーネントです。tbarのそのボタンは実際にはコンポーネントであり、そのインスタンス化されたフォームがスコープになります。必要なオブジェクトを取得するために言ったように、パネルに移動する必要があります。

于 2012-06-29T11:43:24.720 に答える