중첩 된보기 및 중첩 된 상태가있는 부모 상태가 있습니다. 중첩 된 뷰는 IP 목록입니다. 서버에 대한 값 비싼 호출은 첫 번째로드에서만 발생해야합니다. IP를 클릭하면 URL이 업데이트되어 traffic.details
상태가 업데이트되지만 목록은 업데이트되지 않습니다. URL은 다음과 같아야합니다. /traffic/details?ip=127.0.0.1
UI-Route에서 상위 상태가 중첩 된 뷰를 파괴하지 못하게하려면 어떻게해야합니까?
부모 URL은 /traffic?ip
이고 ip
은 모든 중첩 된 상태에서 사용할 수 있습니다. 수행 한 후 :
$state.transitionTo("traffic.details", { ip: "127.0.0.1"});
두 시나리오 :
이 의도 한대로 URL을 업데이트 할 수 있지만 파괴하고 중첩 된 뷰를 다시 것입니다.
내가
preventDefault()
부모 상태에서$scope.$on('$stateChangeStart')
에 중첩 된 뷰를 다시로드하고traffic.details
상태 (예상 동작을) 다시로드하지만이 URL을 업데이트하지 않습니다하지 않습니다.
중첩 된보기를 업데이트하지 않고 부모 상태 URL을 업데이트하려면 어떻게해야합니까?
나는 당신이 제안한 것과 비슷한 것을했다. 모든 자식 경로에'? ip '를 추가하고 부모 범위에 공유 논리를 남겨두고'event.preventDefault()'에 대한 언급을 제거했습니다. 나는 당신의 버전이'? ip'와 동일한 스코프/라우트에 코드를 공유함으로써 더 명확하게 만든다고 생각합니다. –
사용자가 페이지를 새로 고칠 때 위의 기능이 작동하지 않습니다. 매개 변수가 경로에서 사용 가능하기 전에 상위 범위가로드되기 때문입니다. 당신이 언급 한 방법을 시도해야합니다. –
내 솔루션에 행운이 있었나요? –