0

私は ext js を初めて使用しますが、入門ガイドを読み、独自のアプリを作成することができました。

現在、e コマース システム (ショップウェア) 用のプラグインを構築しており、アプリを動的に拡張する必要があります。

既存のコントローラーにモンキー パッチを適用することで、ビューを追加することができました。

//{extends file="[default]backend/article/controller/main.js"}
//{namespace name=backend/article/view/main}
//{block name="backend/article/controller/main" append}
Ext.define('Shopware.apps.Article.controller.MyApp', {
    override: 'Shopware.apps.Article.controller.Main',
    openMainWindow: function() {
        var me         = this,
            mainwindow = me.callOverridden();    
            oldTabCreation  = mainwindow.createMainTabPanel;
            mainwindow.createMainTabPanel = function() {
                  mainTab = oldTabCreation.apply(this);
                  mainTab.add(
                      Ext.create('Ext.panel.Panel',
                          {
                                title: 'Pricify',
                                layout: 'card'
                          })
                  );
                  return mainTab;
            };
        return mainwindow;
    }
});
//{/block}

これは機能します。それが好ましい方法かどうかはわかりませんが、ビューが適切な場所にロードされ、非常に満足しています (数時間かかるため)。

しかし、行く方法があります。

ここにロジック全体を挿入するにはどうすればよいですか?

私の要件は次のとおりです。

  • コントローラー、ビュー、ストア/モデルが必要です
  • できれば独自の名前空間で
  • クラスをファイルに分割したい。
  • ファイルは、元のアプリ フォルダーではなく、プラグイン フォルダーに存在する必要があります。

app.js ファイルにコードを追加することはできましたが、私が知る限り、コントローラーとビューをアタッチすることはできず、ファイルを自動ロードする方法もわかりません。

そうするための好ましい方法はありますか?

編集 私は今、単純なアプリを構築しています。これは前にロードされ、アプリに利用できるコントローラーを挿入しようとしています。準備ができたら、また報告します。

4

1 に答える 1

1

通常、コントローラー イベントを ( Ext.ux.Applicationオーバーライドで) インターセプトし、その上にいくつかのロジックを追加することで、このようなことを行います。または、可能であれば、既存のコントローラーを拡張して、アプリ全体でカスタム コントローラーに置き換えることもできます。そうしないと、拡張性を考慮して作成されていない既存のモノリシック アプリケーションを拡張する唯一の方法がモンキー パッチになる可能性があります。

また、4.2 Beta 2 が間もなく利用可能になる予定です。上記のオーバーライドのようなものを含む、MVC の改善点が多数含まれています。あなたはそれを見たいと思うかもしれません。

于 2013-01-08T22:03:40.633 に答える