0

私たちが持っているとしましょう

Ext.application({
    name: 'APP',

    //this is my global helper method.
    determineSomething: function() {
        return true;
    }
});

メソッド defineSomething() にアクセスする必要があるビュー:

Ext.define('APP.view.Main', {
extend: 'Ext.Panel',

config: {
    myConfigValue : APP.app.determineSomething()
}});

これは、Sencha クラス ローディング システムを使用している限り問題なく機能します (この Main-View を含む js ファイルは、APP が利用可能になった後に Sencha によってロードされるためです)。

しかしここで、スクリプトを縮小したいとしましょう。これは、Sencha アプリケーションがロードされる前に、ブラウザが Main.js ファイルを解析することを意味します。しかし、現時点では APP はまだ準備ができておらず、アクセスできません。

1つの解決策は、メソッドを使用して非ext構成クラス/配列/何でも作成することですが、これは良い解決策ですか? この問題のクリーンな解決策は何でしょうか?

4

1 に答える 1

1

アプリが読み込まれるたびにインスタンス化されるヘルパー関数をシングルトン ヘルパー クラスに保持します。たとえば、これは私のヘルパークラスがどのように見えるかです:

Ext.define('MyntraTabApp.util.Helper', {
    singleton : true,
    alternateClassName : 'Helper',
    determineSomething : function(){
        // do something
    }
});

こんな感じで好きなところに使えます

Helper.determineSomething();
于 2013-04-02T13:18:32.750 に答える