SlideShare une entreprise Scribd logo
1  sur  55
Télécharger pour lire hors ligne
Ionic 으로 모바일앱 만들기
#2. MVC, Component(css)
ABCD, 스노우키위 한성일
1. 콘솔 사용방법(윈도우, 맥)
2. 작업 환경 설정
3. 아이오닉 CSS 컴포넌트
4. MVC 사용
코스
1. 콘솔 사용방법(윈도우, 맥)
익숙치 않은 콘솔
알고나면 어렵지 않아요.
전체는 너무 많고
지금 필요한 것들만 알아보죠.
콘솔 사용 방법
1. 시작 버튼
2. 프로그램 및 파일 검색
3. cmd
cmd
작업폴더 설정 (맥)
1
2 3
mkdir
make directory
디렉토리를 생성하는 명령어
$ mkdir ~/Documents/test
mkdir C:test
C드라이브 아래에 test 라는 폴더를 생성
~ 자신의 홈디렉토리의 Document 폴더에 test 라는 폴더 생성
cd 1
change directory
cd c:ionic-space
cd ~/Document/ionic-space
C드라이브 test라는 폴더로 이동합니다.
Document의 test 폴더로 이동합니다.
cd 2
change directory
cd ..
한칸 뒤로 나옵니다. 윈도우에서는 c: 로
맥에서는 Document 폴더로 이동합니다.
~
자기의 홈 디렉토리를 나타냅니다.
(리눅스에서는 /home/아이디)
ex) /Users/자신의 아이디
하면 자신의 홈으로 이동합니다.
cd ~
ls
list directory
ls 현재 경로의 모든 파일과 디렉토리 출력
유닉스(맥, 리눅스) 계열에서 사용
dir
directory
현재 경로의 모든 파일과 디렉터로 출력
윈도우 계열에서 사용
절대경로, 상대경로
절대경로
/Users/jamie/Document
상대경로
cd Document/test
만약 /Users/jamie 경로에 위치하고 있다면..
로 이동 가능
tip
cd /Use
Use 까지만 누리고 ‘tab’ 버튼을 눌르면
cd /Users
가 자동 완성됩니다. 폴더 파일명 모두 적용 됩니다.
더 알고 싶다면
http://passing2.tistory.com/56
http://mactraining.tistory.com/148
2. 작업 환경 설정
작업폴더 이동
cd ~/ionic-space
cd c:ionic-space
ionic start blankApp blank
작업 폴더로 이동 합시다.
blankApp 이 없다면 프로젝트를 생성해줍니다.
app.js 수정
blankApp/www/app.js 를 수정합니다.
.config(function($stateProvider, $urlRouterProvider) {
$stateProvider
.state('test', {
url: "/test",
templateUrl: "templates/test.html"
})
})
index.html 수정
blankApp/www/index.html 를 수정합니다.
<body ng-app=“starter">
<ion-nav-bar class="bar bar-header bar-positive">
<ion-nav-back-button class="button-clear">
<i class="ion-arrow-left-c"></i> Back
</ion-nav-back-button>
</ion-nav-bar>
<!— 네비게이션 뷰 -->
<ion-nav-view></ion-nav-view>
</body>
bar-positive 상단바 색상
<i class="ion-arrow-left-c"></i> Back 백버튼 출력
test.html 추가
blankApp/www/templates/test.html 를 추가합니다.
<ion-view view-title="Components Test">
<ion-content>
</ion-content>
</ion-view>
<ion-content>
<!-- 컨텐츠는 여기 배치 됩니다. -->
</ion-content>
에러없이 뜨는지 확인
ionic serve
/#/test
디버깅
크롬 개발자 도구 사용
3. 아이오닉 CSS 컴포넌트
컴포넌트 Docs
http://ionicframework.com/docs/components/
Sub Header
blankApp/www/templates/test.html 을 수정합니다.
<!-- 서브 헤더 -->
<div class="bar bar-header">
<h1 class="title">Header</h1>
</div>
<ion-content>
<!-- 여기에 입력 -->
</ion-content>
Footer
<ion-view view-title="Components Test">
</ion-view>
<!-- footer -->
<div class="bar bar-footer bar-balanced">
<div class="title">Footer</div>
</div>
Buttons<!-- 버튼 -->
<div class="content padding has-header">
<p>
<button class="button button-small button-light">button-light</button>
</p>
<p>
<button class="button button-small button-stable">button-stable</button>
</p>
<p>
<button class="button button-small button-positive">button-positive</button>
</p>
<button class="button button-full button-positive">
Full Width Block Button
</button>
<p>
<button class="button button-outline button-light">button-light</button>
</p>
<p>
<button class="button button-outline button-stable">button-stable</button>
</p>
<p>
<button class="button button-outline button-positive">button-positive</button>
</p>
<p>
<button class="button button-clear button-light">button-light</button>
</p>
<p>
<button class="button button-clear button-stable">button-stable</button>
</p>
<p>
<button class="button button-clear button-positive">button-positive</button>
</p>
</div>
Buttons
Header Buttons
<div class="bar bar-header">
<button class="button button-icon icon ion-navicon"></button>
<div class="h1 title">Header Buttons</div>
<button class="button button-clear button-positive">Edit</button>
</div>
Button Bar
<div class="bar bar-header">
<div class="button-bar">
<a class="button">First</a>
<a class="button">Second</a>
<a class="button">Third</a>
</div>
</div>
List
<div class="list">
<a class="item item-avatar" href="#">
<img src="http://jindorishop.com/board/data/file/sale/2109181960_eb40320a_DSC01132.JPG">
<h2>Venkman</h2>
<p>Back off, man. I'm a scientist.</p>
</a>
<a class="item item-avatar" href="#">
<img src="http://jindorishop.com/board/data/file/sale/2109181960_eb40320a_DSC01132.JPG">
<h2>Egon</h2>
<p>We're gonna go full stream.</p>
</a>
<a class="item item-avatar" href="#">
<img src="http://jindorishop.com/board/data/file/sale/2109181960_eb40320a_DSC01132.JPG">
<h2>Ray</h2>
<p>Ugly little spud, isn't he?</p>
</a>
<a class="item item-avatar" href="#">
<img src="http://jindorishop.com/board/data/file/sale/2109181960_eb40320a_DSC01132.JPG">
<h2>Winston</h2>
<p>That's a big Twinkie.</p>
</a>
</div>
Card
<div class="list card">
<div class="item item-avatar">
<img src="http://tutupash.com/site/assets/nin_logo.jpeg">
<h2>Pretty Hate Machine</h2>
<p>Nine Inch Nails</p>
</div>
<div class="item item-image">
<img src="http://ecx.images-amazon.com/images/I/41D5vU4I1NL.jpg">
</div>
<a class="item item-icon-left assertive" href="#">
<i class="icon ion-music-note"></i>
Start listening
</a>
</div>
Forms
<div class="content has-header">
<div class="list">
<label class="item item-input item-stacked-label">
<span class="input-label">First Name</span>
<input type="text" placeholder="John">
</label>
<label class="item item-input item-stacked-label">
<span class="input-label">Last Name</span>
<input type="text" placeholder="Suhr">
</label>
<label class="item item-input item-stacked-label">
<span class="input-label">Email</span>
<input type="text" placeholder="john@suhr.com">
</label>
</div>
<div class="padding">
<button class="button button-block button-positive">Create Account</button>
</div>
</div>
Toggle
<ul class="list">
<li class="item item-toggle">
HTML5
<label class="toggle toggle-positive">
<input type="checkbox" checked="">
<div class="track">
<div class="handle"></div>
</div>
</label>
</li>
<li class="item item-toggle">
CSS3
<label class="toggle toggle-calm">
<input type="checkbox" checked="">
<div class="track">
<div class="handle"></div>
</div>
</label>
</li>
</ul>
Top Icon Tabs
<!-- 서브 헤더 -->
<div class="bar bar-header">
<h1 class="title">Header</h1>
</div>
<div class="tabs-striped tabs-top tabs-background-positive tabs-color-light">
<div class="tabs">
<a class="tab-item active" href="#">
<i class="icon ion-home"></i>
Test
</a>
<a class="tab-item" href="#">
<i class="icon ion-star"></i>
Favorites
</a>
<a class="tab-item" href="#">
<i class="icon ion-gear-a"></i>
Settings
</a>
</div>
</div>
Grid 1
<!-- 서브 헤더 -->
<div class="bar bar-header">
<h1 class="title">Header</h1>
</div>
<div class="tabs-striped tabs-top tabs-background-positive tabs-color-light">
<div class="tabs">
<a class="tab-item active" href="#">
<i class="icon ion-home"></i>
Test
</a>
<a class="tab-item" href="#">
<i class="icon ion-star"></i>
Favorites
</a>
<a class="tab-item" href="#">
<div class="content has-header">
<div class="row">
<div class="col">
<div class="col-demo">.col</div>
</div>
<div class="col">
<div class="col-demo">.col</div>
</div>
<div class="col">
<div class="col-demo">.col</div>
</div>
<div class="col">
<div class="col-demo">.col</div>
</div>
</div>
Grid 2<div class="row">
<div class="col col-50">
<div class="col-demo">.col</div>
</div>
<div class="col">
<div class="col-demo">.col</div>
</div>
<div class="col">
<div class="col-demo">.col</div>
</div>
</div>
<div class="row">
<div class="col">
<div class="col-demo">Line 1</div>
</div>
<div class="col">
<div class="col-demo">Line 1<br>Line 2<br>Line 3</div>
</div>
</div>
<div class="row">
<div class="col col-center">
<div class="col-demo">Line 1</div>
</div>
<div class="col">
<div class="col-demo">Line 1<br>Line 2<br>Line 3</div>
</div>
</div>
</div><i class="icon ion-gear-a"></i>
Settings
</a>
</div>
</div>
Icon
<ul>
<li class="ion-ionic"></li>
<li class="ion-arrow-up-a"></li>
<li class="ion-arrow-right-a"></li>
<li class="ion-arrow-down-a"></li>
<li class="ion-arrow-left-a"></li>
<li class="ion-arrow-up-b"></li>
</ul>
3. MVC 설정
MVC
controllers.js 추가
www/js 폴더에 controllers.js 파일 추가
angular.module('starter.controllers', ['starter.services'])
첫줄에 추가
services.js 파일 추가
www/js 폴더에 services.js 파일 추가
angular.module('starter.services', [])
다음라인 추가
app.js 1
www/js app.js 수정
angular.module('starter', ['ionic', 'starter.controllers', 'starter.services'])
첫줄을 다음처럼 수정
app.js 2
www/js app.js 수정
.state('hello', {
url: "/hello",
templateUrl: "templates/hello.html"
})
.state("home", {
url: "/",
templateUrl: "templates/home.html"
})
내용 추가
index.html
www/templates/index.html 수정
<script src="js/controllers.js"></script>
<script src="js/services.js"></script>
<head>에 다음의 내용을 추가합니다.
html 추가
www/templates/
hello.html
home.html
파일 추가
<ion-view view-title="Hello">
<ion-content>
<p>hello</p>
</ion-content>
</ion-view>
<ion-view view-title="Home">
<ion-content>
<p>home</p>
</ion-content>
</ion-view>
파일 추가
html 추가
http://localhost:8100/#/
http://localhost:8100/#/hello
테스트
4. MVC 사용
app.js
.state('posts', {
url: "/posts",
templateUrl: "templates/posts.html",
controller: 'PostsCtrl'
})
.state('post-detail', {
url: '/posts/:postId',
templateUrl: 'templates/post-detail.html',
controller: 'PostDetailCtrl'
})
controllers.js
.controller('PostsCtrl', function($scope, Posts) {
$scope.posts = Posts.all();
})
.controller('PostDetailCtrl', function($scope, $stateParams, Posts) {
$scope.post = Posts.get($stateParams.postId);
})
services.js
.factory('Posts', function() {
var posts = [{
id: 0,
name: '진돗개',
title: '배고프다.',
image: 'http://jindorishop.com/board/data/file/sale/2109181960_eb40320a_DSC01132.JPG',
text: '안녕'
}, {
id: 1,
name: '말티즈',
title: '주인님이 언제오시나?’,
image: 'http://dogplus.petgalleria.net/files/attach/images/47825/785/149/337bec10e301a3885262719d2833336e.jpg',
text: '안녕'
},{
id: 2,
name: '푸들',
title: '후',
image: 'http://rladkfma.nflint.com/%ED%91%B8%EB%93%A4.jpg',
text: '안녕'
}];
return {
all: function() {
return posts;
},
get: function(postId) {
for (var i = 0; i < posts.length; i++) {
if (posts[i].id === parseInt(postId)) {
return posts[i];
}
}
return null;
}
};
});
posts.html
<ion-view view-title="Board">
<ion-content>
<ion-list>
<ion-item class="item-remove-animate item-avatar item-icon-right"
ng-repeat="post in posts" type="item-text-wrap" href="#/posts/{{post.id}}">
<img ng-src="{{post.image}}">
<h2>{{post.name}}</h2>
<p>{{post.title}}</p>
<p>{{post.text}}</p>
<i class="icon ion-chevron-right icon-accessory"></i>
</ion-item>
</ion-list>
</ion-content>
</ion-view>
post-detail.html
<ion-view view-title="{{post.name}}">
<ion-content class="padding">
<img ng-src="{{post.image}}" style="width: 64px; height: 64px">
<p>
{{post.title}}
</p>
<p>
{{post.text}}
</p>
</ion-content>
</ion-view>
home.html
<ion-view view-title="Home">
<ion-content>
<a class="button icon-right" href="#/posts">Board</a>
</ion-content>
</ion-view>
결과
수고하셨습니다. :)
ABCD
http://abcds.kr
https://www.facebook.com/groups/562787713823026/
한성일
https://www.facebook.com/jamie.han.16
iheart79@gmail.com

Contenu connexe

Tendances

Angularjs 도입 선택 가이드
Angularjs 도입 선택 가이드Angularjs 도입 선택 가이드
Angularjs 도입 선택 가이드NAVER D2
 
AngularJS 2, version 1 and ReactJS
AngularJS 2, version 1 and ReactJSAngularJS 2, version 1 and ReactJS
AngularJS 2, version 1 and ReactJSKenneth Ceyer
 
혁신적인 웹컴포넌트 라이브러리 - Polymer
혁신적인 웹컴포넌트 라이브러리 - Polymer혁신적인 웹컴포넌트 라이브러리 - Polymer
혁신적인 웹컴포넌트 라이브러리 - PolymerJae Sung Park
 
Polymer따라잡기
Polymer따라잡기Polymer따라잡기
Polymer따라잡기Han Jung Hyun
 
자바스크립트의 또다른 발전, Backbone.js
자바스크립트의 또다른 발전, Backbone.js자바스크립트의 또다른 발전, Backbone.js
자바스크립트의 또다른 발전, Backbone.jsJinKwon Lee
 
알아봅시다, Polymer: Web Components & Web Animations
알아봅시다, Polymer: Web Components & Web Animations알아봅시다, Polymer: Web Components & Web Animations
알아봅시다, Polymer: Web Components & Web AnimationsChang W. Doh
 
Angular2를 활용한 컴포넌트 중심의 개발
Angular2를 활용한 컴포넌트 중심의 개발Angular2를 활용한 컴포넌트 중심의 개발
Angular2를 활용한 컴포넌트 중심의 개발Jin wook
 
프론트엔드 개발자를 위한 크롬 렌더링 성능인자 이해하기
프론트엔드 개발자를 위한 크롬 렌더링 성능인자 이해하기프론트엔드 개발자를 위한 크롬 렌더링 성능인자 이해하기
프론트엔드 개발자를 위한 크롬 렌더링 성능인자 이해하기Chang W. Doh
 
Angular Seminar [한빛미디어 리얼타임 세미나]
Angular Seminar [한빛미디어 리얼타임 세미나]Angular Seminar [한빛미디어 리얼타임 세미나]
Angular Seminar [한빛미디어 리얼타임 세미나]Woojin Joe
 
Polymer Codelab: Before diving into polymer
Polymer Codelab: Before diving into polymerPolymer Codelab: Before diving into polymer
Polymer Codelab: Before diving into polymerChang W. Doh
 
우리가 몰랐던 크롬 개발자 도구
우리가 몰랐던 크롬 개발자 도구우리가 몰랐던 크롬 개발자 도구
우리가 몰랐던 크롬 개발자 도구Jae Sung Park
 
2017 Pycon KR - Django/AWS 를 이용한 쇼핑몰 서비스 구축
2017 Pycon KR - Django/AWS 를 이용한 쇼핑몰 서비스 구축2017 Pycon KR - Django/AWS 를 이용한 쇼핑몰 서비스 구축
2017 Pycon KR - Django/AWS 를 이용한 쇼핑몰 서비스 구축Youngil Cho
 
Web Components & Polymer
Web Components & PolymerWeb Components & Polymer
Web Components & PolymerJae Sung Park
 
간단한 블로그를 만들며 Django 이해하기
간단한 블로그를 만들며 Django 이해하기간단한 블로그를 만들며 Django 이해하기
간단한 블로그를 만들며 Django 이해하기Kyoung Up Jung
 
스프링시큐리티와 소셜연습 이해를 위한 글
스프링시큐리티와 소셜연습 이해를 위한 글스프링시큐리티와 소셜연습 이해를 위한 글
스프링시큐리티와 소셜연습 이해를 위한 글라한사 아
 
다시보는 Angular js
다시보는 Angular js다시보는 Angular js
다시보는 Angular jsJeado Ko
 
Front end dev 2016 & beyond
Front end dev 2016 & beyondFront end dev 2016 & beyond
Front end dev 2016 & beyondJae Sung Park
 
Vue SSR vs Prerender
Vue SSR vs PrerenderVue SSR vs Prerender
Vue SSR vs PrerenderChangwan Jun
 
Angular 2 rc5 조사
Angular 2 rc5 조사Angular 2 rc5 조사
Angular 2 rc5 조사Rjs Ryu
 
처음배우는 자바스크립트, 제이쿼리 #2
처음배우는 자바스크립트, 제이쿼리 #2처음배우는 자바스크립트, 제이쿼리 #2
처음배우는 자바스크립트, 제이쿼리 #2성일 한
 

Tendances (20)

Angularjs 도입 선택 가이드
Angularjs 도입 선택 가이드Angularjs 도입 선택 가이드
Angularjs 도입 선택 가이드
 
AngularJS 2, version 1 and ReactJS
AngularJS 2, version 1 and ReactJSAngularJS 2, version 1 and ReactJS
AngularJS 2, version 1 and ReactJS
 
혁신적인 웹컴포넌트 라이브러리 - Polymer
혁신적인 웹컴포넌트 라이브러리 - Polymer혁신적인 웹컴포넌트 라이브러리 - Polymer
혁신적인 웹컴포넌트 라이브러리 - Polymer
 
Polymer따라잡기
Polymer따라잡기Polymer따라잡기
Polymer따라잡기
 
자바스크립트의 또다른 발전, Backbone.js
자바스크립트의 또다른 발전, Backbone.js자바스크립트의 또다른 발전, Backbone.js
자바스크립트의 또다른 발전, Backbone.js
 
알아봅시다, Polymer: Web Components & Web Animations
알아봅시다, Polymer: Web Components & Web Animations알아봅시다, Polymer: Web Components & Web Animations
알아봅시다, Polymer: Web Components & Web Animations
 
Angular2를 활용한 컴포넌트 중심의 개발
Angular2를 활용한 컴포넌트 중심의 개발Angular2를 활용한 컴포넌트 중심의 개발
Angular2를 활용한 컴포넌트 중심의 개발
 
프론트엔드 개발자를 위한 크롬 렌더링 성능인자 이해하기
프론트엔드 개발자를 위한 크롬 렌더링 성능인자 이해하기프론트엔드 개발자를 위한 크롬 렌더링 성능인자 이해하기
프론트엔드 개발자를 위한 크롬 렌더링 성능인자 이해하기
 
Angular Seminar [한빛미디어 리얼타임 세미나]
Angular Seminar [한빛미디어 리얼타임 세미나]Angular Seminar [한빛미디어 리얼타임 세미나]
Angular Seminar [한빛미디어 리얼타임 세미나]
 
Polymer Codelab: Before diving into polymer
Polymer Codelab: Before diving into polymerPolymer Codelab: Before diving into polymer
Polymer Codelab: Before diving into polymer
 
우리가 몰랐던 크롬 개발자 도구
우리가 몰랐던 크롬 개발자 도구우리가 몰랐던 크롬 개발자 도구
우리가 몰랐던 크롬 개발자 도구
 
2017 Pycon KR - Django/AWS 를 이용한 쇼핑몰 서비스 구축
2017 Pycon KR - Django/AWS 를 이용한 쇼핑몰 서비스 구축2017 Pycon KR - Django/AWS 를 이용한 쇼핑몰 서비스 구축
2017 Pycon KR - Django/AWS 를 이용한 쇼핑몰 서비스 구축
 
Web Components & Polymer
Web Components & PolymerWeb Components & Polymer
Web Components & Polymer
 
간단한 블로그를 만들며 Django 이해하기
간단한 블로그를 만들며 Django 이해하기간단한 블로그를 만들며 Django 이해하기
간단한 블로그를 만들며 Django 이해하기
 
스프링시큐리티와 소셜연습 이해를 위한 글
스프링시큐리티와 소셜연습 이해를 위한 글스프링시큐리티와 소셜연습 이해를 위한 글
스프링시큐리티와 소셜연습 이해를 위한 글
 
다시보는 Angular js
다시보는 Angular js다시보는 Angular js
다시보는 Angular js
 
Front end dev 2016 & beyond
Front end dev 2016 & beyondFront end dev 2016 & beyond
Front end dev 2016 & beyond
 
Vue SSR vs Prerender
Vue SSR vs PrerenderVue SSR vs Prerender
Vue SSR vs Prerender
 
Angular 2 rc5 조사
Angular 2 rc5 조사Angular 2 rc5 조사
Angular 2 rc5 조사
 
처음배우는 자바스크립트, 제이쿼리 #2
처음배우는 자바스크립트, 제이쿼리 #2처음배우는 자바스크립트, 제이쿼리 #2
처음배우는 자바스크립트, 제이쿼리 #2
 

En vedette

Ionic으로 모바일앱 만들기 #3
Ionic으로 모바일앱 만들기 #3Ionic으로 모바일앱 만들기 #3
Ionic으로 모바일앱 만들기 #3성일 한
 
Ionic으로 모바일앱 만들기 #4
Ionic으로 모바일앱 만들기 #4Ionic으로 모바일앱 만들기 #4
Ionic으로 모바일앱 만들기 #4성일 한
 
Ionic으로 모바일앱 만들기 #5
Ionic으로 모바일앱 만들기 #5Ionic으로 모바일앱 만들기 #5
Ionic으로 모바일앱 만들기 #5성일 한
 
Ionic adventures - Hybrid Mobile App Development rocks
Ionic adventures - Hybrid Mobile App Development rocksIonic adventures - Hybrid Mobile App Development rocks
Ionic adventures - Hybrid Mobile App Development rocksJuarez Filho
 
Ionic으로 모바일앱 만들기 #1
Ionic으로 모바일앱 만들기 #1Ionic으로 모바일앱 만들기 #1
Ionic으로 모바일앱 만들기 #1성일 한
 
Node Foundation Membership Overview 20160907
Node Foundation Membership Overview 20160907Node Foundation Membership Overview 20160907
Node Foundation Membership Overview 20160907NodejsFoundation
 

En vedette (6)

Ionic으로 모바일앱 만들기 #3
Ionic으로 모바일앱 만들기 #3Ionic으로 모바일앱 만들기 #3
Ionic으로 모바일앱 만들기 #3
 
Ionic으로 모바일앱 만들기 #4
Ionic으로 모바일앱 만들기 #4Ionic으로 모바일앱 만들기 #4
Ionic으로 모바일앱 만들기 #4
 
Ionic으로 모바일앱 만들기 #5
Ionic으로 모바일앱 만들기 #5Ionic으로 모바일앱 만들기 #5
Ionic으로 모바일앱 만들기 #5
 
Ionic adventures - Hybrid Mobile App Development rocks
Ionic adventures - Hybrid Mobile App Development rocksIonic adventures - Hybrid Mobile App Development rocks
Ionic adventures - Hybrid Mobile App Development rocks
 
Ionic으로 모바일앱 만들기 #1
Ionic으로 모바일앱 만들기 #1Ionic으로 모바일앱 만들기 #1
Ionic으로 모바일앱 만들기 #1
 
Node Foundation Membership Overview 20160907
Node Foundation Membership Overview 20160907Node Foundation Membership Overview 20160907
Node Foundation Membership Overview 20160907
 

Similaire à Ionic으로 모바일앱 만들기 #2

워드프레스 테마 만들기 기초 - 워드프레스 미트업 서울 2015
워드프레스 테마 만들기 기초 - 워드프레스 미트업 서울 2015 워드프레스 테마 만들기 기초 - 워드프레스 미트업 서울 2015
워드프레스 테마 만들기 기초 - 워드프레스 미트업 서울 2015 덕현 남
 
응답하라 반응형웹 - 3. bootstrap
응답하라 반응형웹 - 3. bootstrap응답하라 반응형웹 - 3. bootstrap
응답하라 반응형웹 - 3. bootstrapredribbon1307
 
웹성능최적화 20130405
웹성능최적화 20130405웹성능최적화 20130405
웹성능최적화 20130405주형 전
 
더 나은 웹표준을 위한 Web Components
더 나은 웹표준을 위한 Web Components더 나은 웹표준을 위한 Web Components
더 나은 웹표준을 위한 Web Components정호 전
 
Front-end Development Process - 어디까지 개선할 수 있나
Front-end Development Process - 어디까지 개선할 수 있나Front-end Development Process - 어디까지 개선할 수 있나
Front-end Development Process - 어디까지 개선할 수 있나JeongHun Byeon
 
현대고등학교 PHP 강의 - 7,8차시 (설리번 프로젝트)
현대고등학교 PHP 강의 - 7,8차시 (설리번 프로젝트)현대고등학교 PHP 강의 - 7,8차시 (설리번 프로젝트)
현대고등학교 PHP 강의 - 7,8차시 (설리번 프로젝트)Ukjae Jeong
 
XE Open seminar 테마만들기
XE Open seminar 테마만들기XE Open seminar 테마만들기
XE Open seminar 테마만들기Sungbum Hong
 
C6 html5를 이용한 스마트폰 웹 앱 프레임워크
C6 html5를 이용한 스마트폰 웹 앱 프레임워크C6 html5를 이용한 스마트폰 웹 앱 프레임워크
C6 html5를 이용한 스마트폰 웹 앱 프레임워크NAVER D2
 
2. html5 시맨틱태그
2. html5 시맨틱태그2. html5 시맨틱태그
2. html5 시맨틱태그은심 강
 
2. html5 시맨틱태그
2. html5 시맨틱태그2. html5 시맨틱태그
2. html5 시맨틱태그은심 강
 
Html5 시맨틱태그
Html5 시맨틱태그Html5 시맨틱태그
Html5 시맨틱태그은심 강
 
XE 레이아웃 제작 실무 노하우 1 - XECon2014 by 고진화
XE 레이아웃 제작 실무 노하우 1 - XECon2014 by 고진화XE 레이아웃 제작 실무 노하우 1 - XECon2014 by 고진화
XE 레이아웃 제작 실무 노하우 1 - XECon2014 by 고진화Jinhwa Ko
 
Web Components - Part.I, @KIG 30th
Web Components - Part.I, @KIG 30thWeb Components - Part.I, @KIG 30th
Web Components - Part.I, @KIG 30thChang W. Doh
 
Meteor React Tutorial 따라하기
Meteor React Tutorial 따라하기Meteor React Tutorial 따라하기
Meteor React Tutorial 따라하기Jiam Seo
 
Spring@mvc웹호스팅
Spring@mvc웹호스팅Spring@mvc웹호스팅
Spring@mvc웹호스팅J.H Ahn
 
Modern web application with meteor
Modern web application with meteorModern web application with meteor
Modern web application with meteorJaeho Lee
 

Similaire à Ionic으로 모바일앱 만들기 #2 (20)

워드프레스 테마 만들기 기초 - 워드프레스 미트업 서울 2015
워드프레스 테마 만들기 기초 - 워드프레스 미트업 서울 2015 워드프레스 테마 만들기 기초 - 워드프레스 미트업 서울 2015
워드프레스 테마 만들기 기초 - 워드프레스 미트업 서울 2015
 
응답하라 반응형웹 - 3. bootstrap
응답하라 반응형웹 - 3. bootstrap응답하라 반응형웹 - 3. bootstrap
응답하라 반응형웹 - 3. bootstrap
 
웹성능최적화 20130405
웹성능최적화 20130405웹성능최적화 20130405
웹성능최적화 20130405
 
더 나은 웹표준을 위한 Web Components
더 나은 웹표준을 위한 Web Components더 나은 웹표준을 위한 Web Components
더 나은 웹표준을 위한 Web Components
 
Hacosa jquery 1th
Hacosa jquery 1thHacosa jquery 1th
Hacosa jquery 1th
 
Delivrary intro
Delivrary introDelivrary intro
Delivrary intro
 
okspring3x
okspring3xokspring3x
okspring3x
 
웹표준 교육
웹표준 교육웹표준 교육
웹표준 교육
 
Front-end Development Process - 어디까지 개선할 수 있나
Front-end Development Process - 어디까지 개선할 수 있나Front-end Development Process - 어디까지 개선할 수 있나
Front-end Development Process - 어디까지 개선할 수 있나
 
현대고등학교 PHP 강의 - 7,8차시 (설리번 프로젝트)
현대고등학교 PHP 강의 - 7,8차시 (설리번 프로젝트)현대고등학교 PHP 강의 - 7,8차시 (설리번 프로젝트)
현대고등학교 PHP 강의 - 7,8차시 (설리번 프로젝트)
 
XE Open seminar 테마만들기
XE Open seminar 테마만들기XE Open seminar 테마만들기
XE Open seminar 테마만들기
 
C6 html5를 이용한 스마트폰 웹 앱 프레임워크
C6 html5를 이용한 스마트폰 웹 앱 프레임워크C6 html5를 이용한 스마트폰 웹 앱 프레임워크
C6 html5를 이용한 스마트폰 웹 앱 프레임워크
 
2. html5 시맨틱태그
2. html5 시맨틱태그2. html5 시맨틱태그
2. html5 시맨틱태그
 
2. html5 시맨틱태그
2. html5 시맨틱태그2. html5 시맨틱태그
2. html5 시맨틱태그
 
Html5 시맨틱태그
Html5 시맨틱태그Html5 시맨틱태그
Html5 시맨틱태그
 
XE 레이아웃 제작 실무 노하우 1 - XECon2014 by 고진화
XE 레이아웃 제작 실무 노하우 1 - XECon2014 by 고진화XE 레이아웃 제작 실무 노하우 1 - XECon2014 by 고진화
XE 레이아웃 제작 실무 노하우 1 - XECon2014 by 고진화
 
Web Components - Part.I, @KIG 30th
Web Components - Part.I, @KIG 30thWeb Components - Part.I, @KIG 30th
Web Components - Part.I, @KIG 30th
 
Meteor React Tutorial 따라하기
Meteor React Tutorial 따라하기Meteor React Tutorial 따라하기
Meteor React Tutorial 따라하기
 
Spring@mvc웹호스팅
Spring@mvc웹호스팅Spring@mvc웹호스팅
Spring@mvc웹호스팅
 
Modern web application with meteor
Modern web application with meteorModern web application with meteor
Modern web application with meteor
 

Plus de 성일 한

파이어베이스 스터디
파이어베이스 스터디파이어베이스 스터디
파이어베이스 스터디성일 한
 
Electron 개발하기
Electron 개발하기Electron 개발하기
Electron 개발하기성일 한
 
Python 으로 Slackbot 개발하기
Python 으로 Slackbot 개발하기Python 으로 Slackbot 개발하기
Python 으로 Slackbot 개발하기성일 한
 
챗봇 시작해보기
챗봇 시작해보기챗봇 시작해보기
챗봇 시작해보기성일 한
 
2016 ABCD 소개
2016 ABCD 소개2016 ABCD 소개
2016 ABCD 소개성일 한
 
Laravel 로 배우는 서버사이드 #5
Laravel 로 배우는 서버사이드 #5Laravel 로 배우는 서버사이드 #5
Laravel 로 배우는 서버사이드 #5성일 한
 
Laravel 로 배우는 서버사이드 #4
Laravel 로 배우는 서버사이드 #4Laravel 로 배우는 서버사이드 #4
Laravel 로 배우는 서버사이드 #4성일 한
 
Laravel 로 배우는 서버사이드 #3
Laravel 로 배우는 서버사이드 #3Laravel 로 배우는 서버사이드 #3
Laravel 로 배우는 서버사이드 #3성일 한
 
Laravel 로 배우는 서버사이드 #2
Laravel 로 배우는 서버사이드 #2Laravel 로 배우는 서버사이드 #2
Laravel 로 배우는 서버사이드 #2성일 한
 
Laravel 로 배우는 서버사이드 #1
Laravel 로 배우는 서버사이드 #1Laravel 로 배우는 서버사이드 #1
Laravel 로 배우는 서버사이드 #1성일 한
 
인플루언서 마케팅 (INFLUENCER MARKETING)
인플루언서 마케팅 (INFLUENCER MARKETING)인플루언서 마케팅 (INFLUENCER MARKETING)
인플루언서 마케팅 (INFLUENCER MARKETING)성일 한
 
처음배우는 자바스크립트, 제이쿼리 #4
처음배우는 자바스크립트, 제이쿼리 #4처음배우는 자바스크립트, 제이쿼리 #4
처음배우는 자바스크립트, 제이쿼리 #4성일 한
 
처음배우는 자바스크립트, 제이쿼리 #3
처음배우는 자바스크립트, 제이쿼리 #3처음배우는 자바스크립트, 제이쿼리 #3
처음배우는 자바스크립트, 제이쿼리 #3성일 한
 
처음배우는 자바스크립트, 제이쿼리 #1
처음배우는 자바스크립트, 제이쿼리 #1처음배우는 자바스크립트, 제이쿼리 #1
처음배우는 자바스크립트, 제이쿼리 #1성일 한
 
CSS 선택자와 디버그
CSS 선택자와 디버그CSS 선택자와 디버그
CSS 선택자와 디버그성일 한
 
워드프레스 기초 (ABCD) #2
워드프레스 기초 (ABCD) #2워드프레스 기초 (ABCD) #2
워드프레스 기초 (ABCD) #2성일 한
 
워드프레스 기초 (ABCD) #1
워드프레스 기초 (ABCD) #1워드프레스 기초 (ABCD) #1
워드프레스 기초 (ABCD) #1성일 한
 
파이썬 플라스크로 배우는 웹프로그래밍 #4 (ABCD)
파이썬 플라스크로 배우는 웹프로그래밍 #4 (ABCD)파이썬 플라스크로 배우는 웹프로그래밍 #4 (ABCD)
파이썬 플라스크로 배우는 웹프로그래밍 #4 (ABCD)성일 한
 
파이썬 플라스크로 배우는 웹프로그래밍 #3 (ABCD)
파이썬 플라스크로 배우는 웹프로그래밍 #3 (ABCD)파이썬 플라스크로 배우는 웹프로그래밍 #3 (ABCD)
파이썬 플라스크로 배우는 웹프로그래밍 #3 (ABCD)성일 한
 
파이썬 플라스크로 배우는 웹프로그래밍 #2 (ABCD)
파이썬 플라스크로 배우는 웹프로그래밍 #2 (ABCD)파이썬 플라스크로 배우는 웹프로그래밍 #2 (ABCD)
파이썬 플라스크로 배우는 웹프로그래밍 #2 (ABCD)성일 한
 

Plus de 성일 한 (20)

파이어베이스 스터디
파이어베이스 스터디파이어베이스 스터디
파이어베이스 스터디
 
Electron 개발하기
Electron 개발하기Electron 개발하기
Electron 개발하기
 
Python 으로 Slackbot 개발하기
Python 으로 Slackbot 개발하기Python 으로 Slackbot 개발하기
Python 으로 Slackbot 개발하기
 
챗봇 시작해보기
챗봇 시작해보기챗봇 시작해보기
챗봇 시작해보기
 
2016 ABCD 소개
2016 ABCD 소개2016 ABCD 소개
2016 ABCD 소개
 
Laravel 로 배우는 서버사이드 #5
Laravel 로 배우는 서버사이드 #5Laravel 로 배우는 서버사이드 #5
Laravel 로 배우는 서버사이드 #5
 
Laravel 로 배우는 서버사이드 #4
Laravel 로 배우는 서버사이드 #4Laravel 로 배우는 서버사이드 #4
Laravel 로 배우는 서버사이드 #4
 
Laravel 로 배우는 서버사이드 #3
Laravel 로 배우는 서버사이드 #3Laravel 로 배우는 서버사이드 #3
Laravel 로 배우는 서버사이드 #3
 
Laravel 로 배우는 서버사이드 #2
Laravel 로 배우는 서버사이드 #2Laravel 로 배우는 서버사이드 #2
Laravel 로 배우는 서버사이드 #2
 
Laravel 로 배우는 서버사이드 #1
Laravel 로 배우는 서버사이드 #1Laravel 로 배우는 서버사이드 #1
Laravel 로 배우는 서버사이드 #1
 
인플루언서 마케팅 (INFLUENCER MARKETING)
인플루언서 마케팅 (INFLUENCER MARKETING)인플루언서 마케팅 (INFLUENCER MARKETING)
인플루언서 마케팅 (INFLUENCER MARKETING)
 
처음배우는 자바스크립트, 제이쿼리 #4
처음배우는 자바스크립트, 제이쿼리 #4처음배우는 자바스크립트, 제이쿼리 #4
처음배우는 자바스크립트, 제이쿼리 #4
 
처음배우는 자바스크립트, 제이쿼리 #3
처음배우는 자바스크립트, 제이쿼리 #3처음배우는 자바스크립트, 제이쿼리 #3
처음배우는 자바스크립트, 제이쿼리 #3
 
처음배우는 자바스크립트, 제이쿼리 #1
처음배우는 자바스크립트, 제이쿼리 #1처음배우는 자바스크립트, 제이쿼리 #1
처음배우는 자바스크립트, 제이쿼리 #1
 
CSS 선택자와 디버그
CSS 선택자와 디버그CSS 선택자와 디버그
CSS 선택자와 디버그
 
워드프레스 기초 (ABCD) #2
워드프레스 기초 (ABCD) #2워드프레스 기초 (ABCD) #2
워드프레스 기초 (ABCD) #2
 
워드프레스 기초 (ABCD) #1
워드프레스 기초 (ABCD) #1워드프레스 기초 (ABCD) #1
워드프레스 기초 (ABCD) #1
 
파이썬 플라스크로 배우는 웹프로그래밍 #4 (ABCD)
파이썬 플라스크로 배우는 웹프로그래밍 #4 (ABCD)파이썬 플라스크로 배우는 웹프로그래밍 #4 (ABCD)
파이썬 플라스크로 배우는 웹프로그래밍 #4 (ABCD)
 
파이썬 플라스크로 배우는 웹프로그래밍 #3 (ABCD)
파이썬 플라스크로 배우는 웹프로그래밍 #3 (ABCD)파이썬 플라스크로 배우는 웹프로그래밍 #3 (ABCD)
파이썬 플라스크로 배우는 웹프로그래밍 #3 (ABCD)
 
파이썬 플라스크로 배우는 웹프로그래밍 #2 (ABCD)
파이썬 플라스크로 배우는 웹프로그래밍 #2 (ABCD)파이썬 플라스크로 배우는 웹프로그래밍 #2 (ABCD)
파이썬 플라스크로 배우는 웹프로그래밍 #2 (ABCD)
 

Ionic으로 모바일앱 만들기 #2

  • 1. Ionic 으로 모바일앱 만들기 #2. MVC, Component(css) ABCD, 스노우키위 한성일
  • 2. 1. 콘솔 사용방법(윈도우, 맥) 2. 작업 환경 설정 3. 아이오닉 CSS 컴포넌트 4. MVC 사용 코스
  • 4. 익숙치 않은 콘솔 알고나면 어렵지 않아요. 전체는 너무 많고 지금 필요한 것들만 알아보죠.
  • 5. 콘솔 사용 방법 1. 시작 버튼 2. 프로그램 및 파일 검색 3. cmd cmd
  • 7. mkdir make directory 디렉토리를 생성하는 명령어 $ mkdir ~/Documents/test mkdir C:test C드라이브 아래에 test 라는 폴더를 생성 ~ 자신의 홈디렉토리의 Document 폴더에 test 라는 폴더 생성
  • 8. cd 1 change directory cd c:ionic-space cd ~/Document/ionic-space C드라이브 test라는 폴더로 이동합니다. Document의 test 폴더로 이동합니다.
  • 9. cd 2 change directory cd .. 한칸 뒤로 나옵니다. 윈도우에서는 c: 로 맥에서는 Document 폴더로 이동합니다. ~ 자기의 홈 디렉토리를 나타냅니다. (리눅스에서는 /home/아이디) ex) /Users/자신의 아이디 하면 자신의 홈으로 이동합니다. cd ~
  • 10. ls list directory ls 현재 경로의 모든 파일과 디렉토리 출력 유닉스(맥, 리눅스) 계열에서 사용
  • 11. dir directory 현재 경로의 모든 파일과 디렉터로 출력 윈도우 계열에서 사용
  • 12. 절대경로, 상대경로 절대경로 /Users/jamie/Document 상대경로 cd Document/test 만약 /Users/jamie 경로에 위치하고 있다면.. 로 이동 가능
  • 13. tip cd /Use Use 까지만 누리고 ‘tab’ 버튼을 눌르면 cd /Users 가 자동 완성됩니다. 폴더 파일명 모두 적용 됩니다.
  • 16. 작업폴더 이동 cd ~/ionic-space cd c:ionic-space ionic start blankApp blank 작업 폴더로 이동 합시다. blankApp 이 없다면 프로젝트를 생성해줍니다.
  • 17. app.js 수정 blankApp/www/app.js 를 수정합니다. .config(function($stateProvider, $urlRouterProvider) { $stateProvider .state('test', { url: "/test", templateUrl: "templates/test.html" }) })
  • 18. index.html 수정 blankApp/www/index.html 를 수정합니다. <body ng-app=“starter"> <ion-nav-bar class="bar bar-header bar-positive"> <ion-nav-back-button class="button-clear"> <i class="ion-arrow-left-c"></i> Back </ion-nav-back-button> </ion-nav-bar> <!— 네비게이션 뷰 --> <ion-nav-view></ion-nav-view> </body> bar-positive 상단바 색상 <i class="ion-arrow-left-c"></i> Back 백버튼 출력
  • 19. test.html 추가 blankApp/www/templates/test.html 를 추가합니다. <ion-view view-title="Components Test"> <ion-content> </ion-content> </ion-view> <ion-content> <!-- 컨텐츠는 여기 배치 됩니다. --> </ion-content>
  • 22. 3. 아이오닉 CSS 컴포넌트
  • 24. Sub Header blankApp/www/templates/test.html 을 수정합니다. <!-- 서브 헤더 --> <div class="bar bar-header"> <h1 class="title">Header</h1> </div> <ion-content> <!-- 여기에 입력 --> </ion-content>
  • 25. Footer <ion-view view-title="Components Test"> </ion-view> <!-- footer --> <div class="bar bar-footer bar-balanced"> <div class="title">Footer</div> </div>
  • 26. Buttons<!-- 버튼 --> <div class="content padding has-header"> <p> <button class="button button-small button-light">button-light</button> </p> <p> <button class="button button-small button-stable">button-stable</button> </p> <p> <button class="button button-small button-positive">button-positive</button> </p> <button class="button button-full button-positive"> Full Width Block Button </button> <p> <button class="button button-outline button-light">button-light</button> </p> <p> <button class="button button-outline button-stable">button-stable</button> </p> <p> <button class="button button-outline button-positive">button-positive</button> </p> <p> <button class="button button-clear button-light">button-light</button> </p> <p> <button class="button button-clear button-stable">button-stable</button> </p> <p> <button class="button button-clear button-positive">button-positive</button> </p> </div>
  • 28. Header Buttons <div class="bar bar-header"> <button class="button button-icon icon ion-navicon"></button> <div class="h1 title">Header Buttons</div> <button class="button button-clear button-positive">Edit</button> </div>
  • 29. Button Bar <div class="bar bar-header"> <div class="button-bar"> <a class="button">First</a> <a class="button">Second</a> <a class="button">Third</a> </div> </div>
  • 30. List <div class="list"> <a class="item item-avatar" href="#"> <img src="http://jindorishop.com/board/data/file/sale/2109181960_eb40320a_DSC01132.JPG"> <h2>Venkman</h2> <p>Back off, man. I'm a scientist.</p> </a> <a class="item item-avatar" href="#"> <img src="http://jindorishop.com/board/data/file/sale/2109181960_eb40320a_DSC01132.JPG"> <h2>Egon</h2> <p>We're gonna go full stream.</p> </a> <a class="item item-avatar" href="#"> <img src="http://jindorishop.com/board/data/file/sale/2109181960_eb40320a_DSC01132.JPG"> <h2>Ray</h2> <p>Ugly little spud, isn't he?</p> </a> <a class="item item-avatar" href="#"> <img src="http://jindorishop.com/board/data/file/sale/2109181960_eb40320a_DSC01132.JPG"> <h2>Winston</h2> <p>That's a big Twinkie.</p> </a> </div>
  • 31. Card <div class="list card"> <div class="item item-avatar"> <img src="http://tutupash.com/site/assets/nin_logo.jpeg"> <h2>Pretty Hate Machine</h2> <p>Nine Inch Nails</p> </div> <div class="item item-image"> <img src="http://ecx.images-amazon.com/images/I/41D5vU4I1NL.jpg"> </div> <a class="item item-icon-left assertive" href="#"> <i class="icon ion-music-note"></i> Start listening </a> </div>
  • 32. Forms <div class="content has-header"> <div class="list"> <label class="item item-input item-stacked-label"> <span class="input-label">First Name</span> <input type="text" placeholder="John"> </label> <label class="item item-input item-stacked-label"> <span class="input-label">Last Name</span> <input type="text" placeholder="Suhr"> </label> <label class="item item-input item-stacked-label"> <span class="input-label">Email</span> <input type="text" placeholder="john@suhr.com"> </label> </div> <div class="padding"> <button class="button button-block button-positive">Create Account</button> </div> </div>
  • 33. Toggle <ul class="list"> <li class="item item-toggle"> HTML5 <label class="toggle toggle-positive"> <input type="checkbox" checked=""> <div class="track"> <div class="handle"></div> </div> </label> </li> <li class="item item-toggle"> CSS3 <label class="toggle toggle-calm"> <input type="checkbox" checked=""> <div class="track"> <div class="handle"></div> </div> </label> </li> </ul>
  • 34. Top Icon Tabs <!-- 서브 헤더 --> <div class="bar bar-header"> <h1 class="title">Header</h1> </div> <div class="tabs-striped tabs-top tabs-background-positive tabs-color-light"> <div class="tabs"> <a class="tab-item active" href="#"> <i class="icon ion-home"></i> Test </a> <a class="tab-item" href="#"> <i class="icon ion-star"></i> Favorites </a> <a class="tab-item" href="#"> <i class="icon ion-gear-a"></i> Settings </a> </div> </div>
  • 35. Grid 1 <!-- 서브 헤더 --> <div class="bar bar-header"> <h1 class="title">Header</h1> </div> <div class="tabs-striped tabs-top tabs-background-positive tabs-color-light"> <div class="tabs"> <a class="tab-item active" href="#"> <i class="icon ion-home"></i> Test </a> <a class="tab-item" href="#"> <i class="icon ion-star"></i> Favorites </a> <a class="tab-item" href="#"> <div class="content has-header"> <div class="row"> <div class="col"> <div class="col-demo">.col</div> </div> <div class="col"> <div class="col-demo">.col</div> </div> <div class="col"> <div class="col-demo">.col</div> </div> <div class="col"> <div class="col-demo">.col</div> </div> </div>
  • 36. Grid 2<div class="row"> <div class="col col-50"> <div class="col-demo">.col</div> </div> <div class="col"> <div class="col-demo">.col</div> </div> <div class="col"> <div class="col-demo">.col</div> </div> </div> <div class="row"> <div class="col"> <div class="col-demo">Line 1</div> </div> <div class="col"> <div class="col-demo">Line 1<br>Line 2<br>Line 3</div> </div> </div> <div class="row"> <div class="col col-center"> <div class="col-demo">Line 1</div> </div> <div class="col"> <div class="col-demo">Line 1<br>Line 2<br>Line 3</div> </div> </div> </div><i class="icon ion-gear-a"></i> Settings </a> </div> </div>
  • 37. Icon <ul> <li class="ion-ionic"></li> <li class="ion-arrow-up-a"></li> <li class="ion-arrow-right-a"></li> <li class="ion-arrow-down-a"></li> <li class="ion-arrow-left-a"></li> <li class="ion-arrow-up-b"></li> </ul>
  • 39. MVC
  • 40. controllers.js 추가 www/js 폴더에 controllers.js 파일 추가 angular.module('starter.controllers', ['starter.services']) 첫줄에 추가
  • 41. services.js 파일 추가 www/js 폴더에 services.js 파일 추가 angular.module('starter.services', []) 다음라인 추가
  • 42. app.js 1 www/js app.js 수정 angular.module('starter', ['ionic', 'starter.controllers', 'starter.services']) 첫줄을 다음처럼 수정
  • 43. app.js 2 www/js app.js 수정 .state('hello', { url: "/hello", templateUrl: "templates/hello.html" }) .state("home", { url: "/", templateUrl: "templates/home.html" }) 내용 추가
  • 44. index.html www/templates/index.html 수정 <script src="js/controllers.js"></script> <script src="js/services.js"></script> <head>에 다음의 내용을 추가합니다.
  • 45. html 추가 www/templates/ hello.html home.html 파일 추가 <ion-view view-title="Hello"> <ion-content> <p>hello</p> </ion-content> </ion-view> <ion-view view-title="Home"> <ion-content> <p>home</p> </ion-content> </ion-view> 파일 추가
  • 48. app.js .state('posts', { url: "/posts", templateUrl: "templates/posts.html", controller: 'PostsCtrl' }) .state('post-detail', { url: '/posts/:postId', templateUrl: 'templates/post-detail.html', controller: 'PostDetailCtrl' })
  • 49. controllers.js .controller('PostsCtrl', function($scope, Posts) { $scope.posts = Posts.all(); }) .controller('PostDetailCtrl', function($scope, $stateParams, Posts) { $scope.post = Posts.get($stateParams.postId); })
  • 50. services.js .factory('Posts', function() { var posts = [{ id: 0, name: '진돗개', title: '배고프다.', image: 'http://jindorishop.com/board/data/file/sale/2109181960_eb40320a_DSC01132.JPG', text: '안녕' }, { id: 1, name: '말티즈', title: '주인님이 언제오시나?’, image: 'http://dogplus.petgalleria.net/files/attach/images/47825/785/149/337bec10e301a3885262719d2833336e.jpg', text: '안녕' },{ id: 2, name: '푸들', title: '후', image: 'http://rladkfma.nflint.com/%ED%91%B8%EB%93%A4.jpg', text: '안녕' }]; return { all: function() { return posts; }, get: function(postId) { for (var i = 0; i < posts.length; i++) { if (posts[i].id === parseInt(postId)) { return posts[i]; } } return null; } }; });
  • 51. posts.html <ion-view view-title="Board"> <ion-content> <ion-list> <ion-item class="item-remove-animate item-avatar item-icon-right" ng-repeat="post in posts" type="item-text-wrap" href="#/posts/{{post.id}}"> <img ng-src="{{post.image}}"> <h2>{{post.name}}</h2> <p>{{post.title}}</p> <p>{{post.text}}</p> <i class="icon ion-chevron-right icon-accessory"></i> </ion-item> </ion-list> </ion-content> </ion-view>
  • 52. post-detail.html <ion-view view-title="{{post.name}}"> <ion-content class="padding"> <img ng-src="{{post.image}}" style="width: 64px; height: 64px"> <p> {{post.title}} </p> <p> {{post.text}} </p> </ion-content> </ion-view>
  • 53. home.html <ion-view view-title="Home"> <ion-content> <a class="button icon-right" href="#/posts">Board</a> </ion-content> </ion-view>