MEAN.JS - Создание одной страницы с помощью Angular

В стеке MEAN Angular известен как вторая среда JavaScript, которая позволяет создавать одностраничные приложения с использованием чистого контроллера представления модели (MVC).

AngularJS в качестве интерфейсной структуры использует следующие вещи:

  • Использует Bower для установки файлов и библиотек

  • Использует контроллеры и сервисы для структуры приложения Angular

  • Создает разные HTML-страницы

  • Использует модуль ngRoute для обработки маршрутизации и сервисов для приложения AngularJS

  • Использует Bootstrap, чтобы сделать приложение привлекательным

Настройка нашего приложения Angular

Давайте создадим простое приложение с серверной частью Node.js и интерфейсом AngularJS. Для нашего приложения Angular нам понадобится -

  • Две разные страницы (Домашняя, Студенческая)

  • Разный угловой контроллер для каждого

  • Нет обновления страницы при переключении страниц

Бауэр и втягивание компонентов

Нам понадобятся определенные файлы для нашего приложения, такие как bootstrap и angular. Мы попросим беседку принести нам эти компоненты.

Сначала установите bower на свой компьютер, выполнив следующую команду на своем командном терминале -

npm install -g bower

Это установит bower и сделает его доступным глобально в вашей системе. Теперь поместите файлы .bowerrc и bower.json в корневую папку. В нашем случае этоmean-demo. Содержание обоих файлов показано ниже -

.bowerrc - Это скажет Бауэру, где разместить наши файлы -

{
   "directory": "public/libs"
}

bower.json - Это похоже на package.json и сообщает Bower, какие пакеты необходимы.

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

Затем установите компоненты Bower с помощью следующей команды. Вы можете увидеть, как bower вытягивает все файлы в папке public / libs .

$ 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

Угловые контроллеры

Наш контроллер (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);
}]);

Теперь, когда у нас есть контроллеры и маршруты, мы объединим их все и внедрим эти модули в наш основной общедоступный / js / app.js следующим образом:

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

Посмотреть файл

Angular использует файл шаблона, который можно вставить в <div ng-view> </div> в файле index.html. Директива 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 будет использовать файл шаблона и вставлять его в <div ng-view> </div> в нашем файле index.html . Это будет сделано без обновления страницы.