2017-08-22 6 views
0

ExtJS 6.2.1とadmin-dashboardテンプレートを使用して、動的フォームを作成しようとしました(最終的にAJAXプロキシを使用してサーバーからExtJSにフォーム定義を渡しました)。私Application.jsでTreestoreによる動的フォーム

は、launch機能では、ノーコントロールで簡単なフォームを追加しました:

var form = Ext.create('Ext.form.Panel', { 
      title: 'Testing 1, 2, 3...', 
      alias: 'widget.test-form', 
      bodyPadding: 5, 
      width: 350, 

      layout: 'anchor', 
      defaults: { 
       anchor: '100%' 
      } 

     }); 

私はこれのどこをレンダリングしたいが、その代わりに、私のTreeStoreのメニューに、それはアクセスしないでください、よう:私はビルドを行うときに

{ 
    text: 'Dynamic Test', 
    iconCls: 'x-fa fa-check', 
    viewType: 'test-form', 
    leaf: true 
} 

すべてが偉大なコンパイルが、私は私のメニューからフォームにアクセスしようとすると、その後、私は404エラーを取得:

[Error] Failed to load resource: the server responded with a status of 404 (Not Found) (test-form.js, line 0) 
Error: [Ext.create] Unrecognized class name/alias: widget.test-form 

起動時にフォームが表示されるようにTreestoreを取得するにはどうすればよいですか?私はまた、ウィジェットでエイリアスの代わりにxtypeを試しましたが、基本的に同じエラーが発生しました。より一般的には、launchに作成されたform変数をアプリで使用できるようにして、希望どおりにアクセスできるようにするにはどうすればよいですか?

**私も私のアプリのlaunch関数に、フォームのパネル定義に追加してみましたEDIT **

Ext.define('Admin.form.TestDyno', { 
      extend: 'Ext.panel.Panel', 
      alias: 'widget.test-form', 

      title: 'Testing 1, 2, 3...', 
      bodyPadding: 5, 
      width: 350, 

      layout: 'anchor', 
      defaults: { 
       anchor: '100%' 
      } 

     }); 

しかし、私はアプリを実行したとき、私はエラーを取得していること:

log — Util.js:881[E] [Loader] The following classes failed to load: 
log — Util.js:881[E] [Loader] Admin.form.TestDyno from classic/src/Application.js 

私のフォームの定義をファイルにして、アプリケーションの起動時にコンポーネントを初期化する必要がありますか?私は確かにそれを行うことができますが、launchでフォーム定義を行うことができればうれしいです。私はこのようなものがlaunch-function-(Application)-and-set-parameters-on-the-componentだと思っています。私が必要とするものを実装する方法の詳細です。

答えて

1

ウィジェットタイプを認識するために、新しいフォームインスタンスを作成しないでください。

Ext.defineを使用して、新しい派生クラスを定義する必要があります。

+0

私はそれを私のアプリケーション 'launch 'で試みましたが、うまくいきませんでした。私は後で詳細を掲載します。 –

+0

上記の編集を参照してください。 –

+0

私はこの問題に代わるアプローチをとるつもりです。フォームコンポーネントを動的に生成する代わりに、フォーム用のExtJSファイルの生成をスクリプト化します。問題は、リビジョン管理やその場での作成の容易性に使用するための隣接リストとして、いくつかの複雑なフォームの構造をデータベース化したことです。私はこれを取ってファイルを作るためにそれをシリアル化することができるはずです。手作業による編集がいくつかありますが、プロセスの最初の一歩です。したがって、あなたの答えは解決策を提供していませんでしたが、少なくとも私は考えるようになった。 –