0

私はこのコードを持っています:

Ext.define('DKM.BaseClasses.Stores.BaseStore', {
requires:['Ext.window.MessageBox'],
extend: 'Ext.data.Store',

proxy:  {
        type:'ajax',
        listeners: {
            exception: function(proxy, response, options) {                 
                requestMessageProcessor(proxy, response);
            }

        },
        afterRequest: function(request, success) {

            requestMessageProcessor(request.scope, request.operation.response);
        },
},      

requestMessageProcessor: function(proxy, response) {
...

私がやりたいことは、requestMessageProcessor を呼び出すことです。問題 (おそらくスコープの問題) は、「requestMessageProcessor は関数ではありません」というエラーを受け取ることです。

誰でも私にアドバイスをもらえますか?

前もって感謝します!デビッド

4

2 に答える 2

0

その関数をいつでもどこでも呼び出すことができる「グローバル」関数として使用したい場合、私が通常行う方法は、メインコントローラーを作成することです。たとえばMainController、そこで関数を定義します。後で、呼び出したいときはいつでも使用してください

Ext.getController('MainController').yourFunction

その関数をストアに追加したい場合は、単純にそのストアに ID を設定して、これを使用します。

Ext.getStore('your-store-id').yourFunction

それが役に立てば幸い。

于 2012-04-11T13:01:37.340 に答える
0

次のように定義を変更します。

listeners: {
    exception: function(proxy, response, options) {                 
        this.requestMessageProcessor(proxy, response);
    },
    scope: this
},

それはそれを行う必要があります。

于 2012-04-11T12:42:12.630 に答える