codememo

Angular의 UI 라우터에 URL이 없는 상태의 파라미터JS

tipmemo 2023. 3. 14. 21:40
반응형

Angular의 UI 라우터에 URL이 없는 상태의 파라미터JS

ui-router를 사용하여 Angular의 상태를 나타냅니다.JS 앱에서는 URL을 변경하지 않고 상태를 변경하고 싶습니다(기본적으로 "상세보기"는 갱신되지만 URL에는 영향을 주지 않습니다).

사용하고 있다<a ui-sref="item.detail({id: item.id})">자세한 내용을 표시하지만 다음과 같은 URL을 지정한 경우에만 작동합니다.url: "/detail-:id"내 안에서$stateProvider.

현재 상태는 URL로만 정의되어 있는 것 같습니다.

이 게시물에 새로 오신 분들을 위한 추가 정보:

상태 정의의 매개 변수 선언이 다음과 같이 변경되었습니다.params: { id: {} }부터params: ['id']

주의:)

출처: http://angular-ui.github.io/ui-router/site/ #/api/ui.router.state.$stateProvider

답변 감사합니다. 올바른 방향으로 가는 데 도움이 되긴 했지만 좀 더 자세한 설명을 덧붙이고 싶습니다.

특정 문제에서는 URL이 아닌 파라미터를 삽입해야 하는 상태가 자녀 상태였기 때문에 복잡한 요인이 있었습니다.그 일은 약간 복잡했다.

params: ['id']부품은 에 들어갑니다.$stateProvider선언은 다음과 같습니다.

$stateProvider.state('parent', {
    url: '/:parentParam',
    templateUrl: '...',
    controller: '...'
}).
state('parent.child', {
    params: ['parentParam','childParam'],
    templateUrl: '...',
    controller: '...'
});

그리고 파라미터명은 에 접속되어 있습니다.ui-sref다음과 같은 속성:

<a ui-sref=".child({ childParam: 'foo' })">

그리고 단점은 다음과 같습니다.

부모 상태에도 URL 파라미터가 있는 경우 자녀도 URL 파라미터에 대해 선언해야 합니다.params위의 예에서는 parentParam을 자녀 상태에 포함해야 합니다.

그렇지 않으면 응용 프로그램 초기화 시 모듈 오류가 발생합니다.이것은 적어도 기입시의 최신 버전(v.0.2.10)에서는 해당됩니다.

편집

@gulsahkandemir는 다음과 같이 지적한다.

상태 정의의 매개 변수 선언이 매개 변수: ['id']에서 매개 변수: {id: {} }(으)로 변경되었습니다.

changelog로 판단하건대, 이것은 v0.2.11부터의 경우인 것 같습니다.

파라미터에 대한 자세한 내용은 공식 문서에서 확인할 수 있습니다.

이제 깨달았어, 넌 이 모든 것들을params: ['id']URL을 사용하지 않을 때 키가 제거되지 않도록 하기 위한 상태 속성.

언급URL : https://stackoverflow.com/questions/22814554/parameters-for-states-without-urls-in-ui-router-for-angularjs

반응형