回答:
どちらも、SPA(シングルページアプリケーション)でルーティングの目的で使用されるのと同じ働きをします。
コントローラとビューへのURL(HTMLパーシャル)。$ location.url()を監視し、パスを既存のルート定義にマップしようとします。
HTML
<div ng-view></div>
上記のタグは、角度の(構成フェーズ)で$routeProvider.when()
述べた状態からテンプレートをレンダリングします.config
制限:-
ng-view
です$routeProvider
失敗します。(それを達成するために、我々は次のようにディレクティブを使用する必要があるng-include
、ng-switch
、ng-if
、ng-show
SPAでそれらを持っているために、悪いに見えるもの)AngularUIルーターは、AngularJSのルーティングフレームワークであり、インターフェイスの一部をステートマシンに編成することができます。UI-Routerは状態を中心に編成されており、オプションでルートやその他の動作をアタッチできます。
複数の名前付きビュー
もう1つの優れた機能は、テンプレートに複数のUIビューを含める機能です。
複数の並列ビューは強力な機能ですが、をネストし、view
それらのビューをネストされた状態とペアにすることで、インターフェイスをより効率的に管理できることがよくあります。
HTML
<div ui-view>
<div ui-view='header'></div>
<div ui-view='content'></div>
<div ui-view='footer'></div>
</div>
の主なui-router
機能は、ネストされた状態とビューを管理できることです。
長所
ui-view
単一のページに複数を持つことができますui-view="some"
を使用@
した絶対ルーティングを使用するだけで、状態を変更できます。@
変更のみを使用することui-view="some"
です。これは、ui-view
ネストされているかどうかをチェックするのではなく、を置き換えます。ui-sref
を作成するために使用できます。また、形式で状態パラメーターを指定することもできます。href
URL
json
状態を含むさまざまなネストされたビューの柔軟性を向上させるために、 ui-router
$stateProvider
&$routeProvider
Angular独自のng-RouterはURLs
ルーティング時に考慮に入れ、UI-Routerはstates
URLに加えて考慮します。
状態は名前付きのネストされた並列ビューにバインドされているため、アプリケーションのインターフェースを強力に管理できます。
ng-routerでは、<a href="">
タグを介してリンクを提供する場合、URLに非常に注意する必要がありますが、UI-Routerでは注意する必要がありますstate
。のようなリンクを提供します<a ui-sref="">
。<a href="">
ng-routerで行うのと同じように、UI-Routerで使用した場合でも機能します。
したがって、いつかURLを変更することを決定した場合でも、URL state
は同じままであり、URLを変更する必要があるのはのみ.config
です。
ngRouterを使用して単純なアプリを作成できますが、UI-Routerを使用すると、複雑なアプリの開発がはるかに簡単になります。ここにそのウィキ。
$ route:これは、URLをコントローラーおよびビュー(HTMLパーシャル)にディープリンクするために使用され、$ location.url()を監視して、ルートの既存の定義からパスをマップします。
ngRouteを使用する場合、ルートは$ routeProviderで構成され、ui-routerを使用する場合、ルートは$ stateProviderおよび$ urlRouterProviderで構成されます。
<div ng-view></div>
$routeProvider
.when('/contact/', {
templateUrl: 'app/views/core/contact/contact.html',
controller: 'ContactCtrl'
});
<div ui-view>
<div ui-view='abc'></div>
<div ui-view='abc'></div>
</div>
$stateProvider
.state("contact", {
url: "/contact/",
templateUrl: '/app/Aisel/Contact/views/contact.html',
controller: 'ContactCtrl'
});