MEAN.JS - Tworzenie pojedynczej strony za pomocą Angulara
W stosie MEAN, Angular jest znany jako drugi framework JavaScript, który umożliwia tworzenie aplikacji jednostronicowych w czysty sposób kontrolera widoku modelu (MVC).
AngularJS jako front-end Framework wykorzystuje następujące rzeczy -
Używa Bower do instalowania plików i bibliotek
Używa kontrolerów i usług dla struktury aplikacji Angular
Tworzy różne strony HTML
Wykorzystuje moduł ngRoute do obsługi routingu i usług dla aplikacji AngularJS
Używa Bootstrap, aby uatrakcyjnić aplikację
Konfigurowanie naszej aplikacji kątowej
Zbudujmy prostą aplikację, która ma zaplecze Node.js i nakładkę AngularJS. Do naszej aplikacji Angular będziemy chcieli -
Dwie różne strony (domowa, studencka)
Dla każdego inny kontroler kątowy
Brak odświeżania strony podczas przełączania stron
Bower i wciąganie komponentów
Będziemy potrzebować pewnych plików dla naszej aplikacji, takich jak bootstrap i angular. Powiemy Bowerowi, żeby przyniósł nam te komponenty.
Najpierw zainstaluj bower na swoim komputerze, wykonując poniższe polecenie na terminalu poleceń -
npm install -g bower
Spowoduje to zainstalowanie bower i udostępnienie go globalnie w systemie. Teraz umieść pliki .bowerrc i bower.json w swoim katalogu głównym. W naszym przypadku tak jestmean-demo. Zawartość obu plików jest jak poniżej -
.bowerrc - To powie Bowerowi, gdzie umieścić nasze pliki -
{
"directory": "public/libs"
}
bower.json - Jest to podobne do pliku package.json i powie Bowerowi, które pakiety są potrzebne.
{
"name": "angular",
"version": "1.0.0",
"dependencies": {
"bootstrap": "latest",
"angular": "latest",
"angular-route": "latest"
}
}
Następnie zainstaluj komponenty Bower za pomocą poniższego polecenia. Możesz zobaczyć, jak bower wyciąga wszystkie pliki w public / libs .
$ bower install
Nasza struktura katalogów wyglądałaby następująco -
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
Kontrolery kątowe
Nasz kontroler (public / js / controllers / MainCtrl.js) jest następujący -
angular.module('MainCtrl', []).controller('MainController', function($scope) {
$scope.tagline = 'Welcome to tutorials point angular app!';
});
Kontroler public / js / controllers / StudentCtrl.js wygląda następująco -
angular.module('StudentCtrl', []).controller('StudentController', function($scope) {
$scope.tagline = 'Welcome to Student section!';
});
Trasy kątowe
Nasz plik tras (public / js / appRoutes.js) wygląda następująco -
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);
}]);
Teraz, gdy mamy nasze kontrolery i trasy, połączymy je wszystkie i wstrzykniemy te moduły do naszego głównego publicznego / js / app.js w następujący sposób -
angular.module('sampleApp', ['ngRoute', 'appRoutes', 'MainCtrl', 'StudentCtrl']);
Zobaczyć plik
Angular używa pliku szablonu, który można wstawić do <div ng-view> </div> w pliku index.html. Dyrektywa ng-view tworzy element zastępczy, w którym można umieścić odpowiedni widok (widok HTML lub szablon ng-template) na podstawie konfiguracji. Aby uzyskać więcej informacji na temat widoków kątowych, odwiedź ten link .
Kiedy będziesz gotowy do routingu, utwórz mniejsze pliki szablonów i wstaw je do pliku index.html . Plik index.html będzie zawierał następujący fragment kodu -
<!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>
Uruchomiona aplikacja
Wykonanie
Możesz pobrać kod źródłowy tej aplikacji w tym linku . Pobierz plik zip; wyodrębnij go w swoim systemie. Otwórz terminal i uruchom poniższe polecenie, aby zainstalować zależności modułów npm.
$ cd mean-demo
$ npm install
Następnie uruchom poniższe polecenie -
$ node start
Otrzymasz potwierdzenie, jak pokazano na poniższym obrazku -
Teraz przejdź do przeglądarki i wpisz http://localhost:3000. Otrzymasz stronę, jak pokazano na poniższym obrazku -
Kliknij łącze Uczniowie , zobaczysz ekran jak poniżej -
Nasza nakładka Angular użyje pliku szablonu i wstawi go do <div ng-view> </div> w naszym pliku index.html . Zrobi to bez odświeżania strony.