ホームページ > ウェブフロントエンド > jsチュートリアル > AngularJSの定義と使い方を簡単に説明 Routing_AngularJS

AngularJSの定義と使い方を簡単に説明 Routing_AngularJS

WBOY
リリース: 2016-05-16 15:12:02
オリジナル
1451 人が閲覧しました

単一ページのアプリケーションでは、ビュー間の移動が特に重要になります。アプリケーションがますます複雑になるにつれて、いつ、どのページをユーザーに表示するかを正確に制御する方法が必要になります。

メイン ページに異なるテンプレートを導入することで、異なるページ間の切り替えをサポートできますが、そうすることの欠点は、埋め込まれたコードが増えて最終的には管理が困難になることです。

ng-include ディレクティブを使用して多くのテンプレートをビューに統合できますが、この状況を処理するより良い方法があり、ビューをレイアウト ビューとテンプレート ビューに分割し、特定のユーザー アクセス URL に応じて分割できます。希望のビューを表示します

これらの「ピース」をレイアウト テンプレートにまとめることができます

AngularJS は、$routeProvider ($route サービスのプロバイダー) でルートを宣言することで、上記のアイデアを実装します。

$routeProvider を使用すると、閲覧履歴 API をより有効に活用でき、ユーザーが今後使用するために現在のパスをブックマークとして保存できるようになります

アプリケーションでルーティングを設定するには、2 つのことを行う必要があります。まず、新しいページ コンテンツが保存されるレイアウト テンプレートを保存する場所を指定する必要があります。たとえば、すべてのページにヘッダーとフッターを追加したい場合は、次のようにレイアウト テンプレートをデザインできます:

<header>
 <h1>Header</h1>
</header>
<div class="content">
 <div ng-view></div>
</div>
<footer>
 <h5>Footer</h5>
</footer>
ログイン後にコピー

ng-view ディレクティブは、テンプレートをレンダリングする高速 $routeProvider を使用します

次に、ルーティング情報を設定する必要があります。アプリケーションで $routeProvider を設定します

$routeProvider は、ルーティングを処理するための 2 つのメソッド (when と else) を提供します。 メソッドは 2 つのパラメータを受け取る場合、最初のパラメータは $location.path() です (「//」を直接使用しても問題ありません)


定義
ルートの定義は非常に簡単で、アプリケーションのメイン モジュールに ngRoute の依存関係を挿入するだけです

angular.module('myApp', ['ngRoute'])
 .config(function($routeProvider) {});

ログイン後にコピー

これで、アプリケーションのルートを定義できます。 $routeProvider はルーティング モジュールの .config() メソッドに挿入されます。上記のコードは、ルートを定義する 2 つの方法を示しています。

いつ()

when() メソッドには、照合するブラウザの URL とルーティング操作オブジェクトの 2 つのパラメータがあります。一般に、メイン ルートは「/」で表されることが多く、コントローラーでは $routeParams を使用して URL パラメーターを取得することもできます。

templateUrl: ルートジャンプを表すテンプレートを表示

コントローラー: コントローラー

angular.module('myApp', ['ngRoute'])
  .config(function($routeProvider) {
   $routeProvider
    .when('/', {
     templateUrl: 'views/main.html',
     controller: 'MainCtrl'
    })
    .when('/day/:id', {
     templateUrl: 'views/day.html',
     controller: 'DayCtrl'
    })
ログイン後にコピー

そうでない場合()

otherwise() は、アプリケーションが指定されたルートを見つけられない場合にジャンプするルートを定義します

angular.module('myApp', ['ngRoute'])
.config(function($routeProvider) {
 $routeProvider
  .when('/', {
   templateUrl: 'views/main.html',
   controller: 'MainCtrl'
  })
  .when('/day/:id', {
   templateUrl: 'views/day.html',
   controller: 'DayCtrl'
  })
  .otherwise({
   redirectTo: '/'
  });
})

ログイン後にコピー


を使用します
定義されたルートを使用するには? ページのどの部分を変換するかを angular に伝える必要があります。これには ng-view ディレクティブを使用する必要があります

<div class="header">My page</div>
<div ng-view></div>
<span class="footer">A footer</span>

ログイン後にコピー

この方法では、

のみが更新され、ヘッダー/フッターは常に変更されません。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート