3

Sencha Touch 2でExt.app.Applicationクラスを拡張する必要がありますか?たとえば、いくつかのアプリケーションに共通する機能があります。アプリケーションで構成されているすべてのストアに対して何かを実行します。はいの場合、app.jsでアプリケーションを起動するにはどうすればよいですか?

4

1 に答える 1

6

ExtJS 4.0.x / 4.1.xと SenchaTouch 2.0.x / 2.1.x についてお答えします

伸ばしてはいけないExt.app.Application

なんで?

一度に 1 つのアクティブなアプリケーションしか持つことができません。これは、常に構成して呼び出して開始する必要がありますExt.application({...});

いつものように、(両方のフレームワークで) これを回避する方法があり、独自のインスタンスを使用できるようになります。しかし、それをお勧めしません!

何が必要ですか?

基本的に必要なのは、Ext.applicationメソッド内のコードを再実装して拡張し、他のクラスを処理できるようにすることだけですExt.app.Application。SenchaTouch の例を追加します。ExtJS については、コードの下の ExtJS4.2 セクションを参照してください。

SenchaTouch の例

application: function(appClass,config) {
    var appName = config.name,
        onReady, scope, requires;

    if (!config) {
        config = {};
    }

    if (!Ext.Loader.config.paths[appName]) {
        Ext.Loader.setPath(appName, config.appFolder || 'app');
    }

    requires = Ext.Array.from(config.requires);
    config.requires = [appClass];

    onReady = config.onReady;
    scope = config.scope;

    config.onReady = function() {
        config.requires = requires;
        Ext.create(appClass, config);

        if (onReady) {
            onReady.call(scope);
        }
    };

    Ext.setup(config);
},

ExtJS 4.2 への注意

Ext.app.ApplicationSencha は、クラスからの拡張を可能にする ExtJS 4.2 を発表しました。

于 2013-01-22T12:07:32.410 に答える