回答:
TLDR;
Angularは、豊富なユーザーインターフェイスに固有の複雑性に対処するのに役立ちます。UIの複雑さが増すにつれて、サーバー上でページを生成する従来のモデルはさらに複雑になります。Angularを使用すると、UIを管理可能なチャンクに分解し、UIを実装から分離できます。これにより、サーバー側のページ生成が大幅に簡単になりますが、純粋なJavaScriptベースのアプリケーションに移行すると、Angularが実際に機能します。そのようなアプリケーションの良い例はTrelloです。
長い話
Angularは、サーバー上ですべてを生成し、それを送信することで、快適に実装できるサイトを実際には対象としていません。さらに、これはインターネット上の多くのサイトやアプリケーションで機能する完全に優れたアプローチですが、サイト内の対話性のレベルを上げようとすると、そのアプローチを機能させ続けることがますます複雑になります(したがって困難になります)。
最終的にこれを解決する方法は、方程式のJavascript側にUIをますますプッシュすることです。Angularを使用すると、UIをコンポーネントに分割して、ルックアンドフィールと動作方法を明確に分離できます。その後、サーバー上で非常にシンプルなページを構築できます。JSフロントエンドを使用して、必要なデータのためにサーバーに個別の呼び出しを行うリッチUIを作成します。
ただし、やりたいことは、完全にJavaScriptベースのアプリケーションをロードするスタブページをサーバーに配置することだけです。おそらく、Angularが本当に輝いている種類のユースケースの最もよく知られている例はTrelloです(AngularではなくBackboneを使用しますが、同じユースケースです)。http://builtwith.angularjs.org/というサイトがあり、Angularを使用するサンプルサイトがさらにあります。
短い答えですか?Angularは、UIをコンポーネントに分解し、最終的に完全にJavaScriptを使用できるようにすることで、リッチで高度にインタラクティブなユーザーインターフェイスを簡単に作成できるようにします。
より応答性の高いユーザーインターフェイスを作成することです。二重バインディング、依存性注入などにより、動的ページを非常に簡単に作成できます。Angularでディレクティブを記述して、ビューを構築する宣言的な方法を提供できます。
例として、現在のプロジェクトでは、応答性の高いユーザーエクスペリエンスを実現するために、数百行のJavaScriptコードを使用するビューがあります。それでも、ページは少しバグが多く、保守が非常に困難です。より良いオプションを探し始め、backbone.jsとknockout.jsを調べました。最終的に、Angularを試しました。ほんの数行のコードで、はるかに応答性が高く保守可能なページを作成することができました。すべてのDOM操作コードはなくなりました。適切な場所にフェッチして挿入する必要のある不格好なバックエンドビューの作成はすべてなくなりました。モデルとビューの同期を保つために書かれたすべてのコードはなくなりました。その経験により、Angularに移行する決定が容易になり、今のところ後悔していません。
Angularは、単一ページアプリケーションを開発するためのもので、アプリの強固なスケルトンを提供するのに役立ちます。また、フォームにも適していますが、大量のデータがある複雑な混雑したUIにはあまり適していません。双方向のデータバインディングは最初は「魔法」ですが、最新のフレームワーク(Angular 2自体を含む)は双方向のデータバインディングから遠ざかり、よりシンプルなデータフローダウン/イベントフローアップアプローチ(そのことを伝える)ここでは話が長すぎます)。
また、Angularには明確な方法がなく、時には猫の皮を剥ぐ方法が多すぎるため、学習曲線が急になる可能性があることも警告する必要があります。また、Angularアプリをスケーリングする場合は、その内部メカニズムとパフォーマンスへの影響を理解する必要があります。それを行い、一貫したソリッドデザインパターンを確立すると、空が限界になります。しかし、あなたはそれに時間を捧げる必要があります。
とはいえ、あなたの質問は、Angularそのものではなく、SPAのユースケースについてのようです。
シングルページアプリケーションの使用例は、堅牢なUI / UXを備えたWebアプリと全体的に優れたアプリケーションの感触を持つことです。ページをリロードする必要がないため、レンダリング時間と帯域幅を節約できます。また、素晴らしいデータとプレゼンテーションを分離します。アプリケーションは次のようになります。