0

fhActivateアプリのすべてのビューに対して、ビューが作成および破棄されたときにandイベントを作成しようとしているため、fhDeactivateさまざまな必要な機能を実行できます。私のメインコントローラーでは、ビューを作成した後、これを実行します:

view.fireEvent('fhActivate');

そして、別のコントローラーで、次のようなイベントをリッスンしようとしています:

config: {

    refs: {
       rankings: {
             selector: 'fhrankingspanel',
             xtype: 'fhrankingspanel',
             autoCreate: true
        }
    },

    control: {
        rankings : {
            fhActivate: 'onRankingsActivate'
        }
    },


    onRankingsActivate: function() {
        console.log('activate');
    }
}

ビューは正常にロードされ、xtype はそのクラスで次のように定義されます。

alias: 'widget.fhrankingspanel'

しかし、私はこのエラーが発生します:

Uncaught TypeError: Cannot call method 'apply' of undefined 

私は何が欠けていますか?

アップデート

また、コントロール構成オブジェクト内でこれを試したことにも注意してください。

rankings : {
            fhActivate: this.onRankingsActivate
        }

また、参照を単純なものに設定しようとしました:

rankings: 'fhrankingspanel'
4

2 に答える 2

1

このエラーは、コールバック メソッドが未定義の場合に発生します。イベントを登録する時点でタイプミスまたはスコープの問題が発生している可能性があります。

あなたの場合、最初に「onRankingsActivate」の代わりに this.onRankingsActivate を書くようにしてください。

于 2013-01-14T05:58:08.100 に答える
0

メソッドを構成オブジェクト内にラップしない場合にも役立ちます。ここでドキュメントを参照すると、愚かなエラーに気付きました。

http://docs.sencha.com/touch/2-0/#!/api/Ext.app.Controller

それを変更して、制御メソッドを次のようにすると、うまくいきました。

control: {
        rankings : {
            fhActivate: 'onRankingsActivate'
        }
    }
于 2013-01-14T10:56:47.720 に答える