MEAN.JS - Membangun Halaman Tunggal dengan Sudut

Dalam tumpukan MEAN, Angular dikenal sebagai kerangka kerja JavaScript kedua, yang memungkinkan pembuatan aplikasi satu halaman dengan cara Model View Controller (MVC) yang bersih.

AngularJS sebagai Kerangka front-end menggunakan hal-hal berikut -

  • Menggunakan Bower untuk menginstal file dan perpustakaan

  • Menggunakan pengontrol dan layanan untuk struktur aplikasi Angular

  • Membuat halaman HTML yang berbeda

  • Menggunakan modul ngRoute untuk menangani perutean dan layanan untuk aplikasi AngularJS

  • Menggunakan Bootstrap untuk membuat aplikasi menjadi menarik

Menyiapkan Aplikasi Sudut Kami

Mari kita membangun aplikasi sederhana yang memiliki backend Node.js dan frontend AngularJS. Untuk aplikasi Angular kami, kami ingin -

  • Dua halaman berbeda (Home, Student)

  • Pengontrol sudut yang berbeda untuk masing-masing

  • Tidak ada halaman yang disegarkan saat berpindah halaman

Bower dan Menarik Komponen

Kami akan membutuhkan file tertentu untuk aplikasi kami seperti bootstrap dan angular. Kami akan memberi tahu Bower untuk mengambil komponen itu untuk kami.

Pertama, instal bower pada mesin Anda dengan menjalankan perintah di bawah ini pada terminal perintah Anda -

npm install -g bower

Ini akan menginstal bower dan membuatnya dapat diakses secara global di sistem Anda. Sekarang tempatkan file .bowerrc dan bower.json di bawah folder root Anda. Dalam kasus kami itumean-demo. Isi dari kedua file tersebut adalah sebagai berikut -

.bowerrc - Ini akan memberi tahu Bower di mana harus meletakkan file kita -

{
   "directory": "public/libs"
}

bower.json - Ini mirip dengan package.json dan akan memberi tahu Bower paket mana yang dibutuhkan.

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

Selanjutnya, instal komponen Bower dengan menggunakan perintah di bawah ini. Anda dapat melihat bower menarik semua file di bawah public / libs .

$ bower install

Struktur direktori kami adalah sebagai berikut -

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

Pengontrol Sudut

Pengontrol kami (publik / js / controllers / MainCtrl.js) adalah sebagai berikut -

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

Controller public / js / controllers / StudentCtrl.js adalah sebagai berikut -

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

Rute Sudut

File rute kami (public / js / appRoutes.js) adalah sebagai berikut -

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);
}]);

Sekarang setelah kita memiliki pengontrol, dan rute, kita akan menggabungkan semuanya dan menyuntikkan modul ini ke publik utama / js / app.js kita sebagai berikut -

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

Lihat file

Angular menggunakan file template, yang bisa dimasukkan ke dalam <div ng-view> </div> di file index.html. Direktif ng-view membuat placeholder, di mana tampilan terkait (tampilan HTML atau ng-template) dapat ditempatkan berdasarkan konfigurasi. Untuk informasi lebih lanjut tentang tampilan sudut, kunjungi tautan ini .

Saat Anda siap dengan perutean, buat file template yang lebih kecil dan masukkan ke dalam file index.html . File index.html akan memiliki cuplikan kode berikut -

<!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>

Menjalankan Aplikasi

Eksekusi

Anda dapat mengunduh kode sumber untuk aplikasi ini di tautan ini . Unduh file zip; ekstrak di sistem Anda. Buka terminal dan jalankan perintah di bawah ini untuk menginstal dependensi modul npm.

$ cd mean-demo
$ npm install

Selanjutnya jalankan perintah di bawah ini -

$ node start

Anda akan mendapatkan konfirmasi seperti yang ditunjukkan pada gambar di bawah ini -

Sekarang, masuk ke browser dan ketik http://localhost:3000. Anda akan mendapatkan halaman seperti yang ditunjukkan pada gambar di bawah ini -

Klik tautan Siswa , Anda akan melihat layar seperti di bawah ini -

Frontend Angular kita akan menggunakan file template dan memasukkannya ke dalam <div ng-view> </div> di file index.html kita . Ini akan melakukan ini tanpa penyegaran halaman.