ejyoo's 개발 노트

[ExtJS] [Store, ViewModel Bind, Proxy] 헷갈리는 부분 정리 및 어이없는 실수 - 원인 : 서버쪽에 넘겨줄때 extraParams를 proxy에 작성을 안함. 본문

FrontEnd/Ext

[ExtJS] [Store, ViewModel Bind, Proxy] 헷갈리는 부분 정리 및 어이없는 실수 - 원인 : 서버쪽에 넘겨줄때 extraParams를 proxy에 작성을 안함.

ejyoovV 2022. 8. 1. 07:44

이번에 공통 로직 작업을 하면서

해당 뷰가 그려질 때 Tree에 있는 Store를 자동으로 load 하여 데이터를 가져오는 작업을 하고있었다.

아직 store와 viewModel bind 그리고 proxy 설정이 익숙치 않은 관계로

이번 삽질을 기록하려고 한다.

 

1) store 'autoLoad: true'

- autoLoad는 무조건 request GET 방식으로 서버에 넘겨지게 된다.

- extjs에서 request를 Get방식으로 넘겨주는 코드를 찾아보려고 했지만 찾지 못하였다.

- 구글 검색결과 POST 방식으로 넘겨주려면 두가지 방법이 존재했다.

  i) 스토어 autoLoad를 하지않고 따로 Controller 코드에서 store를 따로 load()를 시켜준다.

  ii) 정확하게 메서드 명은 기억이 안나지만 build 관련 코드를 POST 방식으로 호출이 가능하도록 재구현 해야된다.

 

2) 서버에 넘겨지는 부분은 proxy에 무조건 작성한다고 생각해야함.

- 이번에 삽질의 원인이 GET 방식으로 파라미터로 넘길때 'extraParams'를 사용하여 넘겼는데,

proxy에 작성을 해야하는 것을 store 에 작성하는 어이없는 실수를 범하였다.

{} 중괄호를 주의깊게 보지 않는 이상 이 오류를 찾기 힘들다. 

속성 기준으로 코딩을 하기때문에 javascript에서는 없는 속성인 경우 그냥 만들어 주기때문에

오류가 따로 나지 않는다.

그냥 서버에 넘겨질 때 queryString에 extraParams로 넣었던 애들이 없을 뿐이다.. 

이것도 왜 안되지 하면서 ext코드를 까보니까 extraParams가 아예 없더라..

문법이 맞는데 왜 안되지?!?!?!?!?!? 이러고 있었는데.. 문법이 안맞는거였다 ^^

 

3) store의 extraParams에 viewModel의 데이터를 bind 하여 가져올 수 있다.