프로젝트가 커질 수록 컴포넌트는 여러개로 쪼개서 유지보수가 쉽도록 해야한다.
직전까지 만들었던 프로젝트에서는
- 영웅들의 리스트
- 선택된 영웅의 디테일 정보
둘다 얻어낼수 있었다.
이제 디테일정보를 보여주는 컴포넌트는 따로 분리해보도록 하겠다.
1. 새로운 컴포넌트 생성
ng generae component hero-detail
2. 기존의 컴포넌트에서 일부를 떼서 붙여넣기
>hero.component.html에 있던 <div *ngIf="selectedHero">를 잘라내기하여
>hero-detail.component.html 에 붙여넣는다.
우리는 이 디테일 컴포넌트를 어디에서든 사용할 수 있어야 하므로
*ngIf="hero"로 바꾸어 준다. (나중에 input으로 받을것)
----------hero-deatail.component.html----------------
<div *ngIf="hero">
<p>선택된 히어로 :</p>
{{ selectedHero.name }} <span>의 디테일수정</span>
<div>
id : {{ selectedHero.id }}
<input [(ngModel)]="selectedHero.name" placeholder="이름입력" />
</div>
</div>
3. 다음과 같이 input 을 받을수 있도록 설정, input을 해준다.
---------- hero-detail.component.ts------------
import { ..., Input,...} from '@angular/core';
import Hero from '../hero/hero'
export class ... {
...
@Input() hero: Hero;
...
}
---------- hero. component . html --------------
// 중요!! 다음과 같이 컴포넌트 사용 //
<app-hero-detail [hero]="selectedHero" ></app-hero-detail>
4. app.module.ts 에 컴포넌트를 등록한다. ( ng generate는 자동으로됨
------ app.module.ts ------
import { HeroDetailComponent } from './hero-detail.component';
declarations: [
AppComponent,
HeroDetailComponent
],
'Angular.js' 카테고리의 다른 글
Angular Service [2] // 커스텀서비스생성 @Injectable (0) | 2020.07.06 |
---|---|
Angular Service [1] (0) | 2020.07.06 |
*ngFor , *ngIf , (click)="func(Hero)" (0) | 2020.07.06 |
ts 파일에서 : 와 = 차이점 (0) | 2020.07.06 |
새로운 컴포넌트 등록 및 데이터 바인딩 (0) | 2020.07.06 |