AngularJS Tutorial 중부대학교 이병천 교수

Slides:



Advertisements
Similar presentations
XHTML Basic 제 13 장 1. XHTML Basic의 개요 2. XHTML Basic 기본 문법 3. 표 만들기
Advertisements

CHAPTER 10. DOM과 이벤트 처리, 입력 검증.
Chapter06 폼 HTML5 Programming.
CHAPTER 11. 자바스크립트와 캔버스로 게임만들기.
CHAPTER 15. JSP.
CSS Web Page Construction
2002/3/20 HTML 2002/3/20
CHAPTER 16. 모바일 웹페이지.
HTML과 CSS HTML과 CSS 세미나에 오신 것을 환영합니다.
CSS List & Table Chapter 5 Part 2
10장 동적 HTML (Dynamic HTML)
HTML & CSS 겉핥기 2012 SUMMER SPARCS.
HTML5 웹 프로그래밍 입문 (개정판) 4장. CSS3 스타일시트 기초.
HTML과 CGI 프로그래밍 PHP 웹 프로그래밍 (PHP Web Programming) 문양세
HTML5 웹 프로그래밍 입문 (개정판) 6장. 다양한 입력 폼.
1 HTML5 개요.
CHAPTER 12. JQUERY, AJAX, JSON.
01. Index StarPlayer API Guide 01. Index 02. 상수값 정의 03. API 정의
Web Server와 DB 연동.
이 름: 정홍도 (과장) 팀 명: 개발사업팀 일 자:
HTML5 입문 인공지능 연구실.
CHAPTER 5. CSS 박스모델과 응용.
처음부터 다시 배우는 HTML5&CSS3 실전 웹 표준 사이트 제작까지
HTML5 웹 프로그래밍 입문(교수용) 2장.HTML5 문서의 기본.
forms 객체 입력상자 체크상자, 라디오 버튼 목록상자
Chapter05 오디오와 비디오 HTML5 Programming.
HTML5 웹 프로그래밍 입문 (개정판) 5장. 고급 표현을 위한 CSS3 활용.
간단한 이벤트 연결 jQuery 단축 이벤트 메서드 사용법
jQuery Chapter 12 이 서식 파일은 그룹 환경에서 교육 자료를 프레젠테이션할 때 시작 파일로 사용할 수 있습니다.
홈페이지 만들기 HTML HyperText Markup Language 홈페이지를 만들 때 사용하는 언어
5. JSP의 내장객체1.
Javascript Basic Sample Programs
HTML5+CSS3 실무 테크닉 김은기 저.
CHAPTER 8. 자바 스크립트 기초.
CHAPTER 13. HTML5 위치정보와 드래그앤 드롭.
HTML5 웹 프로그래밍 입문 (개정판) 2장. HTML5 문서의 기본.
소프트웨어시스템실습 Shiny 프로그래밍 학기.
CHAPTER 14. HTML5 웹스토리지, 파일API, 웹소켓.
HTML.
인터넷응용프로그래밍 JavaScript(Intro).
Chapter03 캔버스(1) HTML5 Programming.
Chapter10 드래그 앤 드롭 & 텍스트 편집 HTML5 Programming.
게임웹사이트운영 [10] 폼 작성.
CSS Layout Chapter 6 Part 1
Chapter11 웹 스토리지 & 웹 데이터베이스
JavaScript COOKIE Chapter 10 Part III
JavaScript 기초 Chapter 8 Part II
13장. 테두리, 폼 양식 관련 스타일과 레이어 테두리 관련 스타일 폼 양식 관련 스타일 레이어.
HTML 문서 작성 PART 1 Chapter 2 Part 1
MEAN Stack Front to Back (MEANAuthApp)
HTML CSS 자바스크립트 무작정 따라하기
Smart Workplace 개발자 가이드
HTML 5+ 자바스크립트 발표자 : 김동한 5주차.
MEAN Stack Front to Back (MEANAuthApp)
명품 웹 프로그래밍.
폼 관련 태그 폼 양식 직접 만들어보기 회원가입 절차 4단계
1장. HTML5 소개 To Flash 정보영재세미나 1 김태영교수님 홍창의.
웹디자인
2018년 10월 01일 박성진 Web & Internet [04] CSS3 2018년 10월 01일 박성진
JavaScript 객체(objects)
LOGIN할 때 아이디, 비번 입력 여부 체크하기
PHP 웹 프로그래밍 (PHP Web Programming) 미리 정의된 함수 문양세 강원대학교 IT대학 컴퓨터과학전공.
암호학 응용 Applied cryptography
암호학 응용 Applied cryptography
Chapter08 JavaScript 시작하기
.Net Web Application 2007 컴퓨터공학실험(Ⅰ)
웹과 모바일 홈페이지의 이해와 제작 HTML태그와 CSS로 꾸미기
웹과 모바일 홈페이지의 이해와 제작 그리드 레이아웃_웹폼
6 객체.
머니투데이 메인 UI수정 Moneytoday.co.kr - 작성자 : 한정환 - 작성일 :
Presentation transcript:

AngularJS Tutorial 2015. 7. 중부대학교 이병천 교수 http://www.w3schools.com/angular/ 중부대학교 이병천 교수

AngularJS란? 기존의 HTML에 새로운 속성을 사용할 수 있도록 만든 자바스크립트 프레임워크 Single Page Application (SPA) 개발에 유용한 도구 2009년에 구글의 Misko Hevery가 개발 시작 2012년에 AngularJS v1.0 발표 Misko Hevery http://misko.hevery.com/

예제 첫번째 예제 <!DOCTYPE html> <html> <script src= "http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js"> </script> <body> <div ng-app=""> <p>Input something in the input box:</p> <p>Name : <input type="text" ng-model="name" placeholder="Enter name here"></p> <h1>Hello {{name}}</h1> </div> </body> </html>

용어 지시자(Directives): ng-directives ng-app : AngularJS 어플리케이션을 정의 ng-model : input, select, textarea 등의 HTML 요소의 값을 어플 리케이션 데이터로 사용할 수 있도록 bind ng-bind : 어플리케이션 데이터를 HTML View로 bind ng-init : 어플리케이션의 변수를 초기화 ng-controller : 콘트롤러를 정의 <!DOCTYPE html> <html> <script src= "http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js"></script> <body> <div ng-app="" ng-init="name='sultan'"> <p>Input something in the input box:</p> <p>Name: <input type="text" ng-model="name"></p> <p ng-bind="name"></p> </div> </body> </html>

용어 표현식 (Expressions) AngularJS에서 표현식은 이중괄호로 둘러싸서 표시 <!DOCTYPE html> <html> <script src= "http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js"></script> <body> <div ng-app=""> <p>Input something in the input box:</p> <p>Name: <input type="text" ng-model="name"></p> <p>Your name is {{name}}</p> <p>5+10 = {{5+10}} </p> </div> </body> </html>

예제 총 금액 계산기 <!DOCTYPE html> <html> <script src= "http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js"></script> <body> <div data-ng-app="" data-ng-init="quantity=1;price=5"> <h2>Cost Calculator</h2> Quantity: <input type="number" ng-model="quantity"> Price: <input type="number" ng-model="price"> <p><b>Total in dollar:</b> {{quantity * price}}</p> </div> </body> </html>

HTML 요소의 반복 표현 Ng-repeat 지시자 이용 <!DOCTYPE html> <html> <script src= "http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js"></script> <body> <div ng-app="" ng-init="names=[{name:'Jani',country:'Norway'},{name:'Hege',country:'Sweden'}, {name:'Kai',country:'Denmark'}]"> <p>Looping with objects:</p> <ul> <li ng-repeat="x in names"> {{ x.name + ', ' + x.country }}</li> </ul> </div> </body> </html>

AngularJS 컨트롤러 AngularJS 컨트롤러 <!DOCTYPE html> <html> <script src= "http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js"></script> <body> <div ng-app="myApp" ng-controller="personCtrl"> First Name: <input type="text" ng-model="firstName"><br> Last Name: <input type="text" ng-model="lastName"><br> <br> Full Name: {{fullName()}} </div> <script> var app = angular.module('myApp', []); app.controller('personCtrl', function($scope) { $scope.firstName = "John"; $scope.lastName = "Doe"; $scope.fullName = function() { return $scope.firstName + " " + $scope.lastName; } }); </script> </body> </html>

컨트롤러의 분리 운영 컨트롤러를 외부 파일로 운영하는 방식 어플리케이션의 규모가 커지면 별도로 운영하는 것이 바람직 <!DOCTYPE html> <html> <script src= "http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js"></script> <body> <div ng-app="myApp" ng-controller="personCtrl"> First Name: <input type="text" ng-model="firstName"><br> Last Name: <input type="text" ng-model="lastName"><br> <br> Full Name: {{firstName + " " + lastName}} </div> <script src="personController.js"></script> </body> </html> // personController.js (외부파일) var app = angular.module('myApp', []); app.controller('personCtrl', function($scope) {     $scope.firstName = "John";     $scope.lastName = "Doe";     $scope.fullName = function() {         return $scope.firstName + " " + $scope.lastName;     } });

AngularJS 필터 필터 설명 currency 통화 양식으로 표시 filter 배열에서 주어진 조건과 일치하는 내용을 표시 lowercase String을 소문자로 표시 orderBy 주어진 조건으로 정렬 uppercase String을 대문자로 표시

AngularJS 필터 orderBy 필터 사례 <!DOCTYPE html> <html> <script src= "http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js"></script> <body> <div ng-app="myApp" ng-controller="namesCtrl"> <p>Looping with objects:</p> <ul> <li ng-repeat="x in names | orderBy:'country'"> {{ x.name + ', ' + x.country }} </li> </ul> </div> <script src="namesController.js"></script> </body> </html>

AngularJS 필터 currency 필터 사례 <!DOCTYPE html> <html> <script src= "http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js"></script> <body> <div ng-app="myApp" ng-controller="costCtrl"> Quantity: <input type="number" ng-model="quantity"> Price: <input type="number" ng-model="price"> <p>Total = {{ (quantity * price) | currency }}</p> </div> <script> var app = angular.module('myApp', []); app.controller('costCtrl', function($scope) { $scope.quantity = 1; $scope.price = 9.99; }); </script> </body> </html>

$http를 이용한 원격지 서버 데이터 읽기 AngularJS의 $http는 웹서버로부터 데이터를 읽어올 수 있는 XMLHttpRequest 서비스. $http.get(url) 함수 이용 <!DOCTYPE html> <html> <script src= "http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js"></script> <body> <div ng-app="myApp" ng-controller="customersCtrl"> <ul> <li ng-repeat="x in names"> {{ x.Name + ', ' + x.Country }} </li> </ul> </div> <script> var app = angular.module('myApp', []); app.controller('customersCtrl', function($scope, $http) { $http.get("http://www.w3schools.com/angular/customers.php") .success(function (response) {$scope.names = response.records;}); }); </script> </body> </html>

데이터를 테이블로 표시하기 <!DOCTYPE html> <html> <style> table, th , td { border: 1px solid grey; border-collapse: collapse; padding: 5px; } table tr:nth-child(odd) { background-color: #f1f1f1; table tr:nth-child(even) { background-color: #ffffff; </style> <script src= "http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js"></script> <body> <div ng-app="myApp" ng-controller="customersCtrl"> <table> <tr ng-repeat="x in names"> <td>{{ $index + 1 }}</td> <td>{{ x.Name }}</td> <td>{{ x.Country }}</td> </tr> </table> </div> <script> var app = angular.module('myApp', []); app.controller('customersCtrl', function($scope, $http) { $http.get("http://www.w3schools.com/angular/customers.php") .success(function (response) {$scope.names = response.records;}); }); </script> </body> </html>

AngularJS HTML DOM DOM을 제어하는 지시자들 ng-disabled ng-show ng-hide <!DOCTYPE html> <html> <script src= "http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js"></script> <body> <div ng-app="" ng-init="mySwitch=true"> <p><button ng-disabled="mySwitch">Click Me!</button></p> <p><input type="checkbox" ng-model="mySwitch"/>Button</p> <p>ng-disabled: {{ mySwitch }}</p> <p ng-show="true">ng-show=true; I am visible.</p> <p ng-show="false">ng-show=false; I am not visible.</p> <p ng-hide="true">ng-hide=true; I am not visible.</p> <p ng-hide="false">ng-hide=false; I am visible.</p> </div> </body> </html>

AngularJS Events 이벤트를 다루는 지시자들 ng-click <!DOCTYPE html> <script src= "http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js"></script> <body> <div ng-app="myApp" ng-controller="myCtrl"> <button ng-click="count = count + 1">Click Me!</button> <p>Count: {{ count }}</p> </div> <script> var app = angular.module('myApp', []); app.controller('myCtrl', function($scope) { $scope.count = 0; }); </script> </body> </html>

AngularJS Events <div ng-app="myApp" ng-controller="personCtrl"> <button ng-click="toggle()">Toggle</button> <p ng-hide="myVar"> First Name: <input type="text" ng-model="firstName"><br> Last Name: <input type="text" ng-model="lastName"><br> <br> Full Name: {{firstName + " " + lastName}} </p> </div> <script> var app = angular.module('myApp', []); app.controller('personCtrl', function($scope) {     $scope.firstName = "John",     $scope.lastName = "Doe"     $scope.myVar = false;     $scope.toggle = function() {         $scope.myVar = !$scope.myVar;     }; }); </script>

모듈과 콘트롤러의 분리 // myApp.js 모듈 var app = angular.module("myApp", []); <!DOCTYPE html> <html> <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js"></script> <body> <div ng-app="myApp" ng-controller="myCtrl"> {{ firstName + " " + lastName }} </div> <script src="myApp.js"></script> <script src="myCtrl.js"></script> </body> </html> // myApp.js 모듈 var app = angular.module("myApp", []); // myCtrl.js 콘트롤러 app.controller("myCtrl", function($scope) {     $scope.firstName = "John";     $scope.lastName= "Doe"; });

AngularJS Forms Input, select, button, textarea 등의 요소 제어 <div ng-app="myApp" ng-controller="formCtrl">   <form novalidate>     First Name:<br>     <input type="text" ng-model="user.firstName"><br>     Last Name:<br>     <input type="text" ng-model="user.lastName">     <br><br>     <button ng-click="reset()">RESET</button>   </form>   <p>form = {{user}}</p>   <p>master = {{master}}</p> </div> <script> var app = angular.module('myApp', []); app.controller('formCtrl', function($scope) {     $scope.master = {firstName: "John", lastName: "Doe"};     $scope.reset = function() {         $scope.user = angular.copy($scope.master);     };     $scope.reset(); }); </script>

노트 어플리케이션 // myNoteApp.js 모듈 <!DOCTYPE html> <html> <script src= "http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js"></script> <body ng-app="myNoteApp" ng-controller="myNoteCtrl"> <h2>My Note</h2> <textarea ng-model="message" cols="40" rows="10"></textarea> <p> <button ng-click="save()">Save</button> <button ng-click="clear()">Clear</button> </p> <p>Number of characters left: <span ng-bind="left()"></span></p> <script src="myNoteApp.js"></script> <script src="myNoteCtrl.js"></script> </body> </html> // myNoteApp.js 모듈 var app = angular.module("myNoteApp", []); // myNoteCtrl.js 콘트롤러 app.controller("myNoteCtrl", function($scope) {     $scope.message = "";     $scope.left  = function() {return 100 - $scope.message.length;};     $scope.clear = function() {$scope.message = "";};     $scope.save  = function() {alert("Note Saved");}; });