Data binding - nkiateam/angular-tutorial GitHub Wiki

ν”„λ ˆμž„μ›Œν¬ 없이 데이터 바인딩을 ν•˜λŠ” 경우 데이터 값을 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λ§ˆλ‹€ ν•œ 번 μ”© λͺ¨λ“  데이터 바인딩을 μ²˜λ¦¬ν•©λ‹ˆλ‹€.

데이터 바인딩은 ν…œν”Œλ¦Ώκ³Ό ν•΄λ‹Ή κ΅¬μ„±μš”μ†Œκ°„μ˜ ν†΅μ‹ μ—μ„œ μ€‘μš”ν•œ 역할을 ν•©λ‹ˆλ‹€.
λΆ€λͺ¨ / μžμ‹κ°„μ˜ 데이터 바인딩은 λΆ€λͺ¨ κ΅¬μ„±μš”μ†Œμ™€ ν•˜μœ„ ꡬ성 μš”μ†Œκ°„μ˜ 톡신에도 μ€‘μš”ν•©λ‹ˆλ‹€.

⚠️ **GitHub.com Fallback** ⚠️