codememo

angular ui-router에서 브라우저 기록을 변경하지 않고 상태 변경

tipmemo 2023. 10. 10. 20:25
반응형

angular ui-router에서 브라우저 기록을 변경하지 않고 상태 변경

다음과 같은 논리를 가지고 있다고 가정해 보겠습니다.

  • A 상태에서 B 상태로 바꿉니다.
  • 우리가 B 상태에 도착할 때마다, 앱은 항상 전화를 걸어 C 상태로 우리를 리디렉션합니다.$state.go(stateC)
  • 지금 우리는 C 상태에 있습니다.

제 질문은 C 상태에서 A 상태로 돌아가는 방법입니다. (A 상태는 런타임에 우리가 모르는 어떤 상태가 될 수 있다는 사실, 즉 사용자가 다른 어떤 상태에서도 B 상태에 접근할 수 있다는 것을 의미합니다.)

사용.location값이 "바꾸기"인 옵션...

$state.go(stateC, null, {
    location: 'replace'
})

https://angular-ui.github.io/ui-router/site/ #/api/ui.router.state.$state# methods_go 참조

위치 - {boolean=true|string=} - 경우true위치 표시줄의 url을 업데이트합니다.false하지 않을 것이다.문자열인 경우 다음과 같이 해야 합니다."replace", url을 업데이트하고 마지막 히스토리 레코드를 대체합니다.

서비스에서 방문한 상태를 추적한 다음 이전 상태로 $state.go에 전화하면 됩니다.

다음과 같이 상태 변화를 확인할 수 있습니다.

$rootScope.$on('$stateChangeStart', 
function(event, toState, toParams, fromState, fromParams){ 
    // add fromState to history 
});

AngularJS에서 $stateProvider의 상태 변화를 $watch하는 방법은?

언급URL : https://stackoverflow.com/questions/39461556/changing-state-without-changing-browser-history-in-angular-ui-router

반응형