2013-10-18 1 views
0

중첩 된보기 및 중첩 된 상태가있는 부모 상태가 있습니다. 중첩 된 뷰는 IP 목록입니다. 서버에 대한 값 비싼 호출은 첫 번째로드에서만 발생해야합니다. IP를 클릭하면 URL이 업데이트되어 traffic.details 상태가 업데이트되지만 목록은 업데이트되지 않습니다. URL은 다음과 같아야합니다. /traffic/details?ip=127.0.0.1UI-Route에서 상위 상태가 중첩 된 뷰를 파괴하지 못하게하려면 어떻게해야합니까?

부모 URL은 /traffic?ip이고 ip은 모든 중첩 된 상태에서 사용할 수 있습니다. 수행 한 후 :

$state.transitionTo("traffic.details", { ip: "127.0.0.1"}); 

두 시나리오 :

  • 이 의도 한대로 URL을 업데이트 할 수 있지만 파괴하고 중첩 된 뷰를 다시 것입니다.

  • 내가 preventDefault() 부모 상태에서 $scope.$on('$stateChangeStart')에 중첩 된 뷰를 다시로드하고 traffic.details 상태 (예상 동작을) 다시로드하지만이 URL을 업데이트하지 않습니다하지 않습니다.

중첩 된보기를 업데이트하지 않고 부모 상태 URL을 업데이트하려면 어떻게해야합니까?

답변

0

모든 하위 항목을 다시로드하지 않고 상위 URL을 업데이트 할 수 없습니다. 부모보다 아래에 모든 자식을 놓고 추상적으로 설정하면 '? ip'라는 URL이 표시되고 부모 상태의 URL에서 동일한 비트가 제거됩니다.

+0

나는 당신이 제안한 것과 비슷한 것을했다. 모든 자식 경로에'? ip '를 추가하고 부모 범위에 공유 논리를 남겨두고'event.preventDefault()'에 대한 언급을 제거했습니다. 나는 당신의 버전이'? ip'와 동일한 스코프/라우트에 코드를 공유함으로써 더 명확하게 만든다고 생각합니다. –

+0

사용자가 페이지를 새로 고칠 때 위의 기능이 작동하지 않습니다. 매개 변수가 경로에서 사용 가능하기 전에 상위 범위가로드되기 때문입니다. 당신이 언급 한 방법을 시도해야합니다. –

+0

내 솔루션에 행운이 있었나요? –

관련 문제