저는 AngularJS를 사용하는 웹 애플리케이션에서 작업하고 있습니다. 두 가지 주요 모델, 여행 및 위치가 있습니다. 각 여행에는 출발지와 목적지가 있습니다.AngularJS의 리소스를 통해 비정규 화 된 데이터
서버 측에서 정규화 된 데이터 만 처리합니다. 즉, 여행 및 위치는 별도의 데이터베이스 테이블에 저장되며 각 여행 항목에는 목적지의 ID 번호 만 저장됩니다.
클라이언트 측 (AngularJS)에서는 여유 공간과 위치에 대해 두 개의 RESTful ngResources를 사용합니다. 모두를로드 한 후,이 같은 여행뿐만 아니라 startLocation (ID)뿐만 아니라 startLocationObject (위치 정보)를 포함하도록 표시의 위치 데이터와 함께 여행을 채울 :
journey.startLocationObject = locations.byId(journey.startLocation);
ById가 반환하는 간단한 검색 기능입니다 지정된 ID를 가지는 위치
이제 여행에서 $ save를 호출 할 때마다 서버 응답으로 여행을 덮어 쓰므로 위치 데이터가 손실됩니다. 따라서 위치 데이터로 다시 여행을 다시 채워야합니다.
이 문제를 해결할 수있는 더 좋은 방법이 있습니까? 예를 들어, ngResource가 여행 객체를 덮어 쓰지 못하게합니까? 또는 Angular의 관계형 데이터와 관련하여 뭔가를 놓치고 있습니까? 제일 어떤 도움
감사합니다, 보리스
이 REST 구현에는 많은 문제가 있습니다. 아마도 자신 만의 맞춤 구현을 사용하면 문제가 없을 것입니다. AFAIK 당신은 그 행동을 덮어 쓸 수 없습니다. –
이미 위치와 연결된 여정을 반환하는 서버 측에서보기를 구현해야합니다. 데이터베이스 테이블을 REST 자원과 혼동하지 않도록주의하십시오. REST의 "R"은 "Representational"의 약자입니다. 클라이언트의 요구에 가장 잘 맞는 표현을 서버에 작성하십시오. –
@Mike, 알겠습니다. 이는 서버에서 데이터를 채우는 것을 의미합니다. 나는 네트워크 트래픽을 최소화하기 위해 그것을 피하려고했지만 어쩌면 그것은 벌레를 열 수 있습니다. 답장을 보내 주셔서 감사합니다! –