ngRouteは、基本的なクライアント側ルーティング機能を提供するAngularチームによって構築されたモジュールです。このモジュールは、ルーティングのためのかなり強力な基盤を提供し、このブログ投稿に例示されているように、非常に簡単に構築して確実なルーティング機能を提供できます(Ward Bellと著者のBen Nadelの間のコメント証跡を必ず読んでください-それらはAngularプロのカップル)
ui-routerは、フォーカスをURL中心のルートからアプリケーションの「状態」に移行します。これは、URLに反映される場合と反映されない場合があります。
ui-routerによって追加される主な機能は、ネストされた状態と名前付きビューです。
ネストされた状態により、アプリケーションのさまざまな部分のコントローラーロジックを分離できます。この非常に単純な例は、上部にプライマリナビゲーション、左側にセカンダリナビゲーションリスト、右側にコンテンツがあるアプリです。ネストされた状態がない場合、単一のコントローラは通常、コンテンツだけでなく、セカンダリナビゲーションの表示ロジックも処理する必要があります。ネストされたルーティングを使用すると、これらの問題を分離できます。
名前付きビューは、ui-routerのもう1つの追加機能です。ngRouteを使用すると、ページに単一のngViewディレクティブのみを設定できますが、ui-routerの名前付きビューを使用すると、複数のui-viewディレクティブを指定でき、各状態は名前ビューのテンプレートとコントローラーに影響を与えることができます。これの非常に単純な例は、アプリのメインコンテンツをプライマリビューにしてから、別個のuiビューとなるフッターバーを持つことです。このシナリオでは、フッターのコントローラーは状態/ルートの変更をリッスンする必要がなくなりました。
ngRouteとui-routerの良い比較は、このポッドキャストエピソードで見つけることができます。
混乱を避けるために、AngularチームがAngularのバージョン1.5および2.0向けにリリースする予定の新しい「公式」ルーティングモジュールに注意してください。これはngRouteモジュールを置き換えることになります。ここでは 新しいルータモジュールの現在のドキュメントである-実装はまだ確定されていないので、それはこの投稿のようにかなりまばらです。見るここで、このモジュールは、実際にリリースされるときのより多くのニュースのために。