あなたはExtJSに6で新しいアプリケーションを作成するときは、煎茶cmdをアセスおよびコール:「煎茶アプリNameApp ../folderAppを生成」
すると、次のような構造が作成されます。Click here to see the structure
私はあなたのコードが作成された構造について知りませんが、デスクトップやモバイルデバイスで作業するためには、sencha cmdによって生成されたこの構造にする必要があります。
この構造を取得した後(新しいアプリケーションを生成する方がよい)、「extjjs 6.0のリジッドモデル」を頭に入れておく必要があります。 ExtJSはMVCまたはMVVMのアーキテクチャを可能にします。 MVCアーキテクチャは、基本的に、アプリケーションのすべてのコンポーネントを制御できる大規模なコントローラによって制御されます。一方、MVVMアーキテクチャーには、各ビューのコントローラがあります。ビューがインスタンス化されるとインスタンス化され、ビューが破棄されると破棄されます。このアーキテクチャはExtJS、特に最後のバージョンで推奨されています。
これで、実際のアプリケーションで実行されたコードを新しいアプリケーションとアーキテクチャに転送しました。すべてのビュー構造をNameApp> classic> src>ビューに配置します。各ビューの新しいフォルダを開きます。このフォルダには、ビューとこのビューのコントローラが含まれている必要があります。たとえば、のは、リストビューを作成してみましょう:
NameApp>古典> SRC>ビュー>一覧> List.js
NameApp>古典> SRC>ビュー>一覧> ListController.js
などなど...
モバイル> src>ビューフォルダで、モバイルモデルとコントローラを別々に作成することができます。モデルは従来のモデルと同じですが、モバイルツールキットのコンポーネントを使用する必要があります。
ここまでは、別々のモバイルアプリとクラシックアプリが同じコードで作成されています。しかし、コードを最適化するために、ExtJS 6のパワーをappフォルダの汎用クラスを拡張して使用することができます。たとえば、古典と現代のフォルダに延長される特定のビュー、のための一般的なコントローラを作成することができます
NameApp>アプリ>ビュー>一覧> ListControllerGeneric.js
Ext.define('NameApp.app.view.list.ListControllerGeneric', {
extend: 'Ext.app.ViewController',
//here you put code using in modern and classic both
});
NameApp>古典> SRC>ビュー>一覧> ListController.js
Ext.define('NameApp.app.view.list.ListController', {
extend: 'NameApp.app.view.list.ListControllerGeneric',
//here you put code using in classic only
});
NameApp>近代> SRC>ビュー>一覧> ListController.js
Ext.define('NameApp.app.view.list.ListController', {
extend: 'NameApp.app.view.list.ListControllerGeneric',
//here you put code using in modern only
});
クラッシュを避けるために重要なことは、実際にモバイルで使用していない場合でも、クラシックフォルダから最新のフォルダにすべてのビューを作成することです。また、デスクトップとモバイルの両方を使用する場合は、古典と現代の両方をテストするために、現代の時計を使用する必要がありますが、両方をビルドするにはsenchaアプリをビルドする必要があります。
この説明が役に立つと願っています。 煎茶に非常に新しいのおかげ
あなたの広範な応答ありがとう。我々は何が起こっているのか調べることができた。私たちはちょうど 'モダン'ツールキットを使用しました。私たちはあなたが言及した 'モバイル'として私たち自身のものを作りません**。クラッシュを避けるために重要なことの1つは、モバイルで実際に使用していない場合でも、クラシックフォルダから最新のフォルダにすべてのビューを作成することです。さらに、デスクトップとモバイルの両方を使用する場合は、古典と現代の両方をテストするために 'sencha app watch modern 'が必要ですが、**両方をビルドするには' sencha app build'が必要です(具体的には 'sencha app build')。だからあなたの答えを編集することができます.. –
あなたのコメントのおかげでジョージ。私は現代と古典の両方ですべてのビューを作成することについてあなたに同意します。普遍的なアプリケーションを開発しているときに、私はsencha cmd-senchaアプリ時計の2つのインスタンスを実行します。その後、何かを変更すると、普遍的なアプリが更新されます。私は自分の答えをどこで編集したのか分かりません。私が編集してください助けてください。 –
私はちょうどより構造化された方法でコメントに書かれたものを含めるために答えを編集することを意味しました。ありがとうございました –