MEAN.JS-Angular로 단일 페이지 만들기
MEAN 스택에서 Angular는 두 번째 JavaScript 프레임 워크로 알려져 있으며,이를 통해 깨끗한 MVC (Model View Controller) 방식으로 단일 페이지 애플리케이션을 만들 수 있습니다.
프론트 엔드 프레임 워크로서 AngularJS는 다음을 사용합니다.
Bower를 사용하여 파일 및 라이브러리 설치
Angular 애플리케이션 구조에 컨트롤러 및 서비스 사용
다른 HTML 페이지를 만듭니다.
ngRoute 모듈을 사용 하여 AngularJS 애플리케이션에 대한 라우팅 및 서비스 처리
Bootstrap을 사용하여 매력적인 애플리케이션 만들기
Angular 애플리케이션 설정
Node.js 백엔드와 AngularJS 프런트 엔드가있는 간단한 애플리케이션을 빌드 해 보겠습니다. Angular 애플리케이션의 경우 다음을 원할 것입니다.
두 개의 다른 페이지 (홈, 학생)
각기 다른 각도 컨트롤러
페이지 전환시 페이지 새로 고침 없음
Bower 및 구성 요소 당기기
부트 스트랩 및 앵귤러와 같은 애플리케이션을위한 특정 파일이 필요합니다. 우리는 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 pull을 볼 수 있습니다 .
$ 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);
}]);
이제 컨트롤러와 라우트가 생겼으니 , 모두 결합하고 다음과 같이이 모듈을 기본 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>에 삽입 합니다. 페이지 새로 고침없이이 작업을 수행합니다.