Skip to content

Data binding

mmair-kang edited this page Nov 30, 2016 · 5 revisions

ํ”„๋ ˆ์ž„์›Œํฌ ์—†์ด ๋ฐ์ดํ„ฐ ๋ฐ”์ธ๋”ฉ์„ ํ•˜๋Š” ๊ฒฝ์šฐ ๋ฐ์ดํ„ฐ ๊ฐ’์„ HTML ์ปจํŠธ๋กค๋กœ ํ‘ธ์‹œํ•˜๊ณ 
์‚ฌ์šฉ์ž์˜ ์‘๋‹ต์„ ์•ก์…˜ ๋ฐ ๊ฐ’ ์—…๋ฐ์ดํŠธ๋กœ ๋ณ€ํ™˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
๊ทธ๋Ÿฌํ•œ push/pull ๋กœ์ง์„ ์ง์ ‘ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์€ ๋‚ก์€ ๋ฐฉ์‹์ด๋ฉฐ ์˜ค๋ฅ˜ ๋ฐœ์ƒ์˜ ์—ฌ์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด์— Angular2๋Š” ํ…œํ”Œ๋ฆฟ HTML์ผ๋ถ€์— ๋ฐ”์ธ๋”ฉ ๋งˆํฌ์—…์„ ์ถ”๊ฐ€ํ•˜์—ฌ ์–‘์ชฝ์„ ์—ฐ๊ฒฐํ•˜๊ณ 
๊ตฌ์„ฑ์š”์†Œ์˜ ์ผ๋ถ€์™€ ์กฐ์œจํ•˜๋Š” ๋ฉ”์ปค๋‹ˆ์ฆ˜์ธ ๋ฐ์ดํ„ฐ ๋ฐ”์ธ๋”ฉ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
๋‹ค์ด์–ด ๊ทธ๋žจ์—์„œ ๋ณผ ์ˆ˜ ์žˆ๋“ฏ์ด 4๊ฐ€์ง€ ํ˜•ํƒœ์˜ ๋ฐ”์ธ๋”ฉ ๊ตฌ๋ฌธ์ด ์žˆ์Šต๋‹ˆ๋‹ค.
๊ฐ ์–‘์‹์€ DOM๊ฐ„์˜ ์–‘๋ฐฉํ–ฅ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

์•„๋ž˜ ์˜ˆ์ œ ํ…œํ”Œ๋ฆฟ์—๋Š” 3๊ฐ€์ง€ ํ˜•์‹์ด ์žˆ์Šต๋‹ˆ๋‹ค.

app/hero-list.component.html (binding)

<li>{{hero.name}}</li>
<hero-detail [hero]="selectedHero""></hero-detail>
<li (click)="selectHero(hero)></li>

{{hero.name}} - <li> ํƒœ๊ทธ ๋‚ด์— hero.name์˜ ์†์„ฑ ๊ฐ’์„ ํ‘œ์ถœํ•ฉ๋‹ˆ๋‹ค.
[hero] - selectedHero ๊ฐ’์„ ๋ถ€๋ชจ์ธ HeroListComponent์—์„œ ์ž์‹์ธ HeroDetailComponent์˜ hero ์†์„ฑ์œผ๋กœ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.
(click) - ์‚ฌ์šฉ์ž๊ฐ€ hero๋ฅผ ํด๋ฆญํ•˜๋ฉด ์ด๋ฒคํŠธ ๋ฐ”์ธ๋”ฉ์˜ ๊ตฌ์„ฑ์š”์†Œ์˜ seelectHero ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค.

์–‘๋ฐฉํ–ฅ ๋ฐ์ดํ„ฐ ๋ฐ”์ธ๋”ฉ์€ ngModel ์ง€์‹œ๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ ์†์„ฑ ๋ฐ ์ด๋ฒคํŠธ ๋ฐ”์ธ๋”ฉ์„ ๋‹จ์ผ ํ‘œ๊ธฐ๋ฒ•์œผ๋กœ
๊ฒฐํ•ฉํ•˜๋Š” ์ค‘์š”ํ•œ 4๋ฒˆ์งธ ํ˜•์‹์ž…๋‹ˆ๋‹ค.
๋‹ค์Œ์€ HeroDetailComponet ํ…œํ”Œ๋ฆฟ์˜ ์˜ˆ์ œ์ž…๋‹ˆ๋‹ค.

app/hero-detail.component.html (ngModel)

<input [(ngModel)]="hero.name">

์–‘๋ฐฉํ–ฅ ๋ฐ”์ธ๋”ฉ์—์„œ ๋ฐ์ดํ„ฐ ์†์„ฑ ๊ฐ’์€ ์†์„ฑ ๋ฐ”์ธ๋”ฉ๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๊ตฌ์„ฑ์š”์†Œ์˜ ์ž…๋ ฅ์ƒ์ž๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.
์‚ฌ์šฉ์ž์˜ ๋ณ€๊ฒฝ์‚ฌํ•ญ์€ ๊ตฌ์„ฑ์š”์†Œ๋กœ ๋‹ค์‹œ ์ „๋‹ฌ๋˜์–ด ์ด๋ฒคํŠธ ๋ฐ”์ธ๋”ฉ๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋“ฑ๋ก ์ •๋ณด๋ฅผ ์ตœ์‹  ๊ฐ’์œผ๋กœ ์žฌ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

Angular๋Š” ๋ชจ๋“  ์ž์‹ ๊ตฌ์„ฑ์š”์†Œ๋ฅผ ํ†ตํ•ด ์‘์šฉํ”„๋กœ๊ทธ๋žจ ๊ตฌ์„ฑ์š”์†Œ ํŠธ๋ฆฌ์˜ ๋ฃจํŠธ์—์„œ
Event Cycle๋งˆ๋‹ค ํ•œ ๋ฒˆ ์”ฉ ๋ชจ๋“  ๋ฐ์ดํ„ฐ ๋ฐ”์ธ๋”ฉ์„ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

๋ฐ์ดํ„ฐ ๋ฐ”์ธ๋”ฉ์€ ํ…œํ”Œ๋ฆฟ๊ณผ ํ•ด๋‹น ๊ตฌ์„ฑ์š”์†Œ๊ฐ„์˜ ํ†ต์‹ ์—์„œ ์ค‘์š”ํ•œ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.
๋ถ€๋ชจ / ์ž์‹๊ฐ„์˜ ๋ฐ์ดํ„ฐ ๋ฐ”์ธ๋”ฉ์€ ๋ถ€๋ชจ ๊ตฌ์„ฑ์š”์†Œ์™€ ํ•˜์œ„ ๊ตฌ์„ฑ ์š”์†Œ๊ฐ„์˜ ํ†ต์‹ ์—๋„ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

Clone this wiki locally