ホームページ  >  記事  >  ウェブフロントエンド  >  AngularJS_AngularJSのビュー機能アプリの紹介

AngularJS_AngularJSのビュー機能アプリの紹介

WBOY
WBOYオリジナル
2016-05-16 15:54:351499ブラウズ

AngularJS は、単一ページ上の複数のビューを介して単一ページ アプリケーションをサポートします。これを行うために、AngularJS は ng-view ディレクティブと ng-template ディレクティブ、および $routeProvider サービスを提供します。
ng-view

ng-view タグは、構成に従って配置できる対応するビュー (HTML または ng-template ビュー) のプレースホルダーを作成するだけです。

を使用してください

メインモジュールで div と ng-view を定義します。

<div ng-app="mainApp">
...
  <div ng-view></div>

</div>  

NG テンプレート

ng-template ディレクティブは、script タグを使用して HTML ビューを作成するために使用されます。これには、$routeProvider によってマップされたコントローラー ビューの "id" 属性が含まれています。

を使用してください

メインモジュールのng-templateのスクリプトブロックとしてタイプを定義します。

<div ng-app="mainApp">
...
  <script type="text/ng-template" id="addStudent.html">
   <h2> Add Student </h2>
     {{message}}
  </script>

</div>  

$routeProvider

$routeProvider は、URL をグループ化し、対応する HTML ページまたは ng-template にマップし、同じキーを使用してコントローラーをサービスにアタッチする構成です。

を使用してください

メインモジュールのng-templateのスクリプトブロックとしてタイプを定義します。

<div ng-app="mainApp">
...
  <script type="text/ng-template" id="addStudent.html">
   <h2> Add Student </h2>
     {{message}}
  </script>

</div>  

を使用する

メインモジュールのスクリプトブロックを定義し、ルーティング構成を設定します。

 var mainApp = angular.module("mainApp", ['ngRoute']);
   
   mainApp.config(['$routeProvider',
     function($routeProvider) {
      $routeProvider.
        when('/addStudent', {
         templateUrl: 'addStudent.html',
         controller: 'AddStudentController'
        }).
        when('/viewStudents', {
         templateUrl: 'viewStudents.html',
         controller: 'ViewStudentsController'
        }).
        otherwise({
         redirectTo: '/addStudent'
        });
     }]);

上記の例で考慮すべき重要な問題は次のとおりです

  • $routeProvider は、キーワードを使用して「$routeProvider」の下の mainApp モジュールの構成関数として定義されます。
  • $routeProvider は、定義時に URL「/addStudent」を「addStudent.html」にマップします。 addStudent.html は、メイン HTML ページと同じパスに存在する必要があります。 htm ページが定義されていない場合は、id="addStudent.html" を指定して ng-template が使用されます。 ng-template を使用しました;
  • 「そうでない場合」は、
  • の設定に使用されるデフォルトのビューです。
  • 「conlloer」は、ビューに対応するコントローラーを設定するために使用されます。

次の例は、上記のすべてのコマンドを示しています。

testAngularJS.html


<html>
<head>
  <title>Angular JS Views</title>
  <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.2.15/angular.min.js"></script>
  <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.2.25/angular-route.min.js"></script>
</head>
<body>
  <h2>AngularJS Sample Application</h2>
  <div ng-app="mainApp">
   <p><a href="#addStudent">Add Student</a></p>
   <p><a href="#viewStudents">View Students</a></p>
   <div ng-view></div>
   <script type="text/ng-template" id="addStudent.html">
     <h2> Add Student </h2>
     {{message}}
   </script>
   <script type="text/ng-template" id="viewStudents.html">
     <h2> View Students </h2>   
     {{message}}
   </script> 
  </div>

  <script>
   var mainApp = angular.module("mainApp", ['ngRoute']);
   
   mainApp.config(['$routeProvider',
     function($routeProvider) {
      $routeProvider.
        when('/addStudent', {
         templateUrl: 'addStudent.html',
         controller: 'AddStudentController'
        }).
        when('/viewStudents', {
         templateUrl: 'viewStudents.html',
         controller: 'ViewStudentsController'
        }).
        otherwise({
         redirectTo: '/addStudent'
        });
     }]);

     mainApp.controller('AddStudentController', function($scope) {
      $scope.message = "This page will be used to display add student form";
     });

     mainApp.controller('ViewStudentsController', function($scope) {
      $scope.message = "This page will be used to display all the students";
     });
  </script>
</body>
</html>

結果

Web ブラウザで textAngularJS.html を開きます。結果は次のようになります:


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。