Play 2.1 アプリケーションを所有しています。
最初は、AngularJS を学ぶまで、Play 2.1 のデフォルトのテンプレート メカニズムを使用していました。
ここで、クライアント側を AngularJS アプリにしたいのは明らかです。
ただし、ネットサーフィンをしているときに、それを達成する明確な方法がないことがわかりました。
Play を単純な RESTful アプリケーションとして動作させ (
view
フォルダーを削除)、ビューを構築するためのまったく別のプロジェクトを作成します (grunt.js によって初期化された AngularJS アプリ)。
利点: 煩わしさが減り、フロントエンド チームとバックエンド チームが別々に作業しやすくなります。欠点: AngularJS アプリ用に別の HTTP サーバーが必要です。AngularJS アプリを従来の Play のワークフローに完全に統合してみてください。
欠点: AngularJS のような非常に複雑なフレームワークでは、テンプレート管理の混乱につながります。たとえば、scala.html (Play の場合) / tpl.html (Angular の場合) ... => 面倒です。Play プロジェクト内にカスタム フォルダーを作成しますが、Play スキャフォールディングによって作成された初期フォルダーとは異なります。たとえば
myangularview
、従来の代わりにそれを呼びましょう。view
次に、grunt.js によって生成された静的コンテンツを Play のpublic
フォルダーに公開して、Play のルーティングを介してブラウザーからアクセスできるようにします。
利点: コンポーネント間の SRP は依然としてかなり尊重されており、1 のようにクライアント側に別の軽量 HTTP サーバーを使用する必要はありません。
長所と短所について私なりの見解を述べました。
Play と Angular の組み合わせを実現するにはどうすればよいでしょうか?