MEAN.JS-Angularで単一ページを構築する

MEANスタックでは、Angularは2番目のJavaScriptフレームワークとして知られており、クリーンなModel View Controller(MVC)の方法でシングルページアプリケーションを作成できます。

フロントエンドフレームワークとしてのAngularJSは、次のものを使用します-

  • Bowerを使用してファイルとライブラリをインストールします

  • Angularアプリケーション構造にコントローラーとサービスを使用します

  • さまざまなHTMLページを作成します

  • ngRouteモジュールを使用してAngularJSアプリケーションのルーティングとサービスを処理します

  • Bootstrapを使用してアプリケーションを魅力的にする

Angularアプリケーションのセットアップ

Node.jsバックエンドとAngularJSフロントエンドを持つ単純なアプリケーションを構築しましょう。Angularアプリケーションの場合、次のようになります。

  • 2つの異なるページ(自宅、学生)

  • それぞれに異なる角度コントローラー

  • ページを切り替えるときにページが更新されない

バウアーとコンポーネントの引き込み

アプリケーションには、ブートストラップや角度などの特定のファイルが必要になります。これらのコンポーネントを取得するようにbowerに指示します。

まず、コマンド端末で以下のコマンドを実行して、マシンにbowerをインストールします-

npm install -g bower

これにより、bowerがインストールされ、システム上でグローバルにアクセスできるようになります。次に、ファイル.bowerrcとbower.jsonをルートフォルダーの下に配置します。私たちの場合はmean-demo。両方のファイルの内容は以下のとおりです-

.bowerrc - これにより、Bowerにファイルを配置する場所が通知されます-

{
   "directory": "public/libs"
}

bower.json -これはpackage.jsonに似ており、必要なパッケージをBowerに通知します。

{
   "name": "angular",
   "version": "1.0.0",
   "dependencies": {
      "bootstrap": "latest",
      "angular": "latest",
      "angular-route": "latest"
   }
}

次に、以下のコマンドを使用してBowerコンポーネントをインストールします。public / libsの下にあるすべてのファイルでbowerがプルするのを見ることができます。

$ bower install

ディレクトリ構造は次のようになります-

mean-demo
   -app
   -config
   -node_modules
   -public
      -js
         --controllers
   -MainCtrl.js
   -StudentCtrl.js
      --app.js
      --appRoutes.js
   -libs
   -views
      --home.html
   --student.html
      -index.html
   -bower.json
   -package.json
   -server.js

Angularコントローラー

私たちのコントローラー(public / js / controllers / MainCtrl.js)は次のとおりです-

angular.module('MainCtrl', []).controller('MainController', function($scope) {
   $scope.tagline = 'Welcome to tutorials point angular app!';
});

コントローラpublic / js / controllers /StudentCtrl.jsは次のとおりです-

angular.module('StudentCtrl', []).controller('StudentController', function($scope) {
   $scope.tagline = 'Welcome to Student section!';
});

角度のあるルート

ルートファイル(public / js / appRoutes.js)は次のとおりです-

angular.module('appRoutes', []).config(['$routeProvider',
   '$locationProvider', function($routeProvider, $locationProvider) {
   $routeProvider
      // home page
      .when('/', {
         templateUrl: 'views/home.html',
         controller: 'MainController'
      })
      // students page that will use the StudentController
      .when('/students', {
         templateUrl: 'views/student.html',
         controller: 'StudentController'
      });
   $locationProvider.html5Mode(true);
}]);

コントローラとルートができたので、それらをすべて組み合わせて、次のようにこれらのモジュールをメインのpublic / js /app.jsに挿入します。

angular.module('sampleApp', ['ngRoute', 'appRoutes', 'MainCtrl', 'StudentCtrl']);

ファイルを閲覧する

Angularはテンプレートファイルを使用します。テンプレートファイルは、index.htmlファイルの<div ng-view> </ div>に挿入できます。ng-viewディレクティブは、構成に基づいて対応するビュー(HTMLまたはng-templateビュー)を配置できるプレースホルダーを作成します。角度ビューの詳細については、このリンクにアクセスしてください。

ルーティングの準備ができたら、小さいテンプレートファイルを作成し、index.htmlファイルに挿入します。index.htmlファイルには、コードスニペット以下になります-

<!doctype html>
<html lang="en">
   <head>
      <meta charset="UTF-8">
      <base href="/">
      <title>Tutorialspoint Node and Angular</title>
      
      <!-- CSS -->
      <link rel="stylesheet" href="libs/bootstrap/dist/css/bootstrap.min.css">
      <link rel="stylesheet" href="css/style.css"> <!-- custom styles -->
      
      <!-- JS -->
      <script src="libs/angular/angular.min.js"></script>
      <script src="libs/angular-route/angular-route.min.js"></script>
      
      <!-- ANGULAR CUSTOM -->
      <script src="js/controllers/MainCtrl.js"></script>
      <script src="js/controllers/StudentCtrl.js"></script>
      <script src="js/appRoutes.js"></script>
      <script src="js/app.js"></script>
   </head>
   <body ng-app="sampleApp" ng-controller="MainController">
      <div class="container">
      
         <!-- HEADER -->
         <nav class="navbar navbar-inverse">
            <div class="navbar-header">
               <a class="navbar-brand" href="/">Tutorial</a>
            </div>
            <ul class="nav navbar-nav">
               <li><a href="/students">Students</a></li>
            </ul>
         </nav>
         <!-- ANGULAR DYNAMIC CONTENT -->
         <div ng-view></div>
      </div>
   </body>
</html>

実行中のアプリケーション

実行

このアプリケーションのソースコードは、このリンクからダウンロードできます。zipファイルをダウンロードします。システムに抽出します。ターミナルを開き、以下のコマンドを実行してnpmモジュールの依存関係をインストールします。

$ cd mean-demo
$ npm install

次に、以下のコマンドを実行します-

$ node start

下の画像に示すように確認が表示されます-

次に、ブラウザに移動して入力します http://localhost:3000。下の画像に示すようなページが表示されます-

学生リンクをクリックすると、以下のような画面が表示されます-

Angularフロントエンドはテンプレートファイルを使用して、index.htmlファイルの<div ng-view> </ div>に挿入します。これは、ページを更新せずに実行されます。