bestsource

AngularJS UI-Router : 파라미터를 사용하여 상태의 절대 URL을 가져옵니다.

bestsource 2023. 3. 25. 11:36
반응형

AngularJS UI-Router : 파라미터를 사용하여 상태의 절대 URL을 가져옵니다.

재렌더링을 방지하기 위해 상태를 변경하지 않고 주소의 URL을 변경할 수 있도록 하고 싶었습니다.제가 찾아본 바로는ui-router현재 이 기능은 제공되지 않지만,$location.path아누글라에게서요.

그래서 자연스레 제가 쓰고 싶었던 건$state.get(stateName)URL을 수동으로 입력하지 않도록 주의 URL로 이동합니다.

두 가지 문제가 있습니다.

  1. $state.get(stateName)상대 경로만 반환합니다.절대 경로를 어떻게 찾을 수 있나요?
  2. 또한 매개 변수가 정의되지 않은 상태 정의를 반환합니다.파라미터가 설정되어 있는 URL은 어떻게 취득할 수 있습니까?

예를 들어 다음과 같은 상태가 있는 경우user.home.view와 함께user.home의 상태는 다음과 같이 정의되어 있습니다.

'user': {
     abstract: true,
     url: '^/users/'
},
'user.home': {
     url: ''
},
'user.home.view': {
     url: ':id/'
}

그래서 지금은$state.get(user.home.view).url돌아온다:id/. 전체 URL을 얻으려면 어떻게 해야 합니까?/users/5/)?

를 사용해 주세요.$state.href().

  1. 절대 URL을 얻으려면 다음 명령을 사용합니다.

    $state.href('user.home.view', {}, {absolute: true});

  2. 파라미터와 함께 URL을 가져오려면 파라미터를 두 번째 인수로 추가해야 합니다.

그럼 어떻게 되는 거야?

$state.href($state.current.name, $state.params, {absolute: true})

파라미터 없이 절대 URL을 취득하려면 패스해야 합니다.inherit: false(예:

$state.href('home', {}, {absolute: true, inherit: false})

없이.inherit: false나는 있을지도 모르는 어떤/모든 패러메라도 받고 있었다.

언급URL : https://stackoverflow.com/questions/24502065/angularjs-ui-router-get-the-absolute-url-of-the-state-with-the-parameters

반응형