화면구성

컴포넌트를 생성한다.

라우팅을 추가한다.

수정 버튼에 라우트링크를 추가한다.

 

수정은 신규로 등록하는거 보다 더 어렵다. 먼저 등록된 정보를 가져와서 바인딩을 해야 하기 때문이다.

먼저, 기존 register-hero.component.html 화면을 그대로 가져오자.

그리고, component도 기존 register-hero.component.ts 생성자 부분을 그대로 가져오고 hero-detail에서 사용한 hero_id로 hero를 가져와서 바인딩한다.

ReactiveForm에서 setValue와 patchValue 두개의 차이점을 명확히 알아야 한다.

먼저 setValue로 했을때 왜 안되고, patchValue는 왜 되고 차이점이 무엇인지 확인해보자.

power 부분만 바인딩이 안되고 대부분이 바인딩 된 걸 확인할 수 있다.

power는 스트링타입으로 DB에 저장되어있고, 예를들어 ‘flying,strength’ 로 되어있다면 이것을 [‘flying, ‘strength’] 로 변환한 다음 다시 [true, false, false, true]로 변환해야 한다.

 

수정 로직

서비스에 수정 api를 추가한다.

등록시 사용했던 register 함수를 modify 함수로 리팩토링 한다.