AngularJS_1
AngularJS (W3school Tutorial)
W3school Tutorial 따라 해보기
AngularJS?
AngularJS는 opensource Javascript Framework 이다. Miško Hevery에 의해 개발되었으며 현재 구글이 support하고 있다.
AngularJS의 특징
-
MVW(Model View Whatever) 웹 프레임워크: MVC 패턴의 개발이 가능하다.
-
SPA(Single Papge Application): 한 페이지에서 동기적으로 처리가 수행되는 페이지 개발에 유리하다.
-
양방향 데이터 바인딩(two-way data binding): 기존에는 DOM Element를 Select한 후에 해당 Element을 조작하는 기능을 추가하여 DOM을 조작하는 방식이 이었다.
AngularJS는 데이터의 변화에 따라 바로 Bind 하여 데이터 출력을 자동으로 수행한다.
Tutorial
AngularJS CDN
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js" />
AngularJS는 javascript framework으로 위의 CDN을 <body> 안에 추가하면 된다.
<body>에 넣게되면 해당 script가 load 되기 까지 lock이 안생기므로 페이지 로딩을 개선 할 수 있다.
AngularJS Directives
AngularJS는 “ng-” 라는 prefix를 갖는 attribute를 HTML 에 추가하여 확장한다.
HTML5에서는 Custom Data Atrribute로 “data-ng-“로 사용할 수 있다.
<div ng-app="" ng-init="names=[
{name:'Jani',country:'Norway'},
{name:'Hege',country:'Sweden'},
{name:'Kai',country:'Denmark'}]">
<ul>
<li ng-repeat="x in names">
</li>
</ul>
</div>
- ng-app: AngularJS Application을 초기화한다.
attirbute에 ng-app을 추가하면 페이지가 로드되었을 때 Angular Application이 로드된다.
ng-app=”moduleName” 과 같이 module을 적어주면 해당 모듈과 연결된다. - ng-init: AngularJS application 데이터를 초기화 한다. 예제에서는 names 배열을 초기화하고 있다.
주로 ng-init 보다는 controller 또는 ng-app과 연결된 모듈에서 데이터를 초기화한다. - ng-model: HTML Controls(input, select, textarea)의 값을 Application Data에 바인딩 한다.
- ng-bind: Application Data를 HTML View에 출력한다.
- ng-repeat: collection을 순차적으로 접근(foreach)하여 HTML Element를 반복적으로 출력할 때 사용한다.
Angular Expressions
double brace 안에 표현식을 작성하면 해당 View에 표현식의 결과가 출력된다.
(ng-bind Driectives 와 같은 동작을 한다.) 표현식에는 변수나 연산자, 리터럴을 넣을 수 있다.
<div ng-app="" ng-init="firstName='John';lastName='Doe'">
<p>The name is </p>
</div>
<div ng-app="" ng-init="firstName='John';lastName='Doe'">
<p>The name is <span ng-bind="firstName + ' ' + lastName"></span></p>
</div>
-
Object 접근
person = {firstName:’John’,lastName:’Doe’}
person.firstName
결과: John -
Array 접근
points=[1,15,19,2,40]
{{ point[0] }}
결과: 1
AngularJS Controllers
AngularJS Application은 Controller에 의해 동작한다.
Contoller는 일반적인 javascript obejct 생성자에 의해 만들어지고, 하나의 javascript object로 생각하면 된다.
<div ng-app="myApp" ng-controller="myCtrl">
First Name: <input type="text" ng-model="firstName"><br>
Last Name: <input type="text" ng-model="lastName"><br>
<br>
Full Name:
</div>
<script>
var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope) {
$scope.firstName = "John";
$scope.lastName = "Doe";
$scope.fullName = function() {
return $scope.firstName + " " + $scope.lastName;
}
});
</script>
ng-controller에서 “myCtrl” 컨트롤을 연결하고, <script> 에서 해당 컨트롤을 작성하면 된다.
$scope는 controller 객체로, firstName, lastName 과 같은 프로퍼티를 추가 할 수 있으며, 메소드도 추가가 가능하다.
참고 자료
AngularJS 도입 선택가이드: http://helloworld.naver.com/helloworld/1172239
AngularJS API Doc: https://docs.angularjs.org/api
w3schools AngularJS: http://www.w3schools.com/angular/default.asp