2017-02-07 19 views
1

私は最近、純粋なScala-Playアプリケーションで、後で純粋なAngularJSアプリケーションで作業しました。私は両方に非常に感銘を受けています。私は、2つのフレームワークを組み合わせるのに最適な点は何かを考えています。 2つのフレームワークは相補的であることができるが、異なる領域にも重複することができる。Scala-PlayとAngularJSを組み合わせた最適なアーキテクチャは何ですか?

  1. 単一ページのデザイン、AngularJS MVC-のみを使用していない完全なページが更新さを持つ「鈍い」サービス層のバックエンドとしてScalaのプレイを使用します。私の知る限り、これらはいくつかの可能性を知っているとMVCとページルーティング、 。

  2. ページの再読み込みを許可し、各ページのリロードが異なるAngularJSルートアプリケーションになります。これは非常に融通性があります。クライアント側は大規模なアプリケーションでは大量のデータが肥大化することはありませんが、さまざまなユースケースではパーティション化されています。欠点は、私は別のAngularJS MVCアプリケーションが必要だと私はどのようにプロジェクトとしてそれを整理するかもわからないということです。これの例はありますか?

  3. 個別のページごとにUIモデルを処理するには、MVCのみを再生し、AngularJSを使用します。アーキテクチャこれらのタイプのためのIDEの

私の選択はもちろん、WebStormだろうが、残念ながら私はすべてのクライアントサイド(AngularJSとJavaScriptを)持つことができませんし、単一で(スカラ・プレイ)コード側を切断しますプロジェクト。

答えて

1

私は、PlayとAngularを組み合わせるための究極の最適なアーキテクチャはないと考えています。プロジェクト、チームなどの特殊性によって異なります。

Angularを使用してUI部分を開発し、Playを使用してサーバー側のバックエンドを開発するという決定は非常に合理的です。技術的には、以下のように行うことができる。

  1. 開発:

    • 両方の部品が好ましいIDEで剥離プロジェクトとして開発されています。

    • クライアントには、エントリポイントのHTMLページが必要です。 index.htmlという名前は妥当ですが、他の名前でも構いません。

      • をクライアントファイルの「ホーム」としての役割を果たすであろう、プレイアプリケーションルートの下にサブフォルダを選択します。クライアント - サーバ統合のために

    • は次のようにプレイ側で行います。既定の解決方法は、の公開というフォルダを使用することです。その下にあるすべてのファイルが自動的に展開されるためです。

    • すべてのクライアントファイルは、公開フォルダの下にコピーする必要があります。ファイルはどのような構造でも構成できます。
    • index.htmlへのルートとして既定のURLのルートを追加します。引数の経路は、アプリケーションルートと比較してindex.htmlの絶対パスにする必要があります。 インデックスの場合。HTMLがパブリックフォルダーに直接あり、ルートはこのようなものです:

      GET /defaultUrl controllers.Assets.at(path="/public", file ="index.html") 
      
    • は、クライアントのファイルへのルーティングを追加します。

      GET /*file controllers.Assets.at(path="/public", file) 
      

今すぐ配布パッケージがすべて含まれますクライアントファイル。

公共のフォルダにクライアントファイルを置くことは、クライアントのディレクトリ構造とクライアントIDEの適切な構成を整理するなどして、自動的に実行する必要があります。

さらに多くの例がthis postにあります。

+0

ここに情報を追加してください。追加情報なしの外部リンクはお勧めしません – nmat

+0

フィードバックをお寄せいただきありがとうございます。 – asch

関連する問題