Program Tip

AngularJS UI-Router : 매개 변수로 상태의 절대 URL 가져 오기

programtip 2020. 12. 13. 10:28
반응형

AngularJS UI-Router : 매개 변수로 상태의 절대 URL 가져 오기


다시 렌더링을 방지하기 위해 상태를 변경하지 않고 주소의 URL을 변경할 수 있기를 원했습니다. 내 검색에서 ui-router현재는 이것을 제공하지 않지만 $location.pathanuglar에서 제공합니다 .

그래서 당연히 저는 $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

반응형