source

Angular ui-router : URL을 변경하지 않고 상태를 변경할 수 있습니까?

bestscript 2023. 2. 22. 22:32

Angular ui-router : URL을 변경하지 않고 상태를 변경할 수 있습니까?

의 다중 중첩 뷰 기능ui-router매우 좋습니다.어플리케이션 상태 에 쉽게 이동할 수 있습니다.

URL을 변경할 수 있지만 변경할 수 없는 경우도 있습니다.상태 개념은 라우팅과 분리/선택되어야 한다고 생각합니다.

여기 내 말이 무슨 뜻인지 보여주는 플런커가 있다.이 포크는 플런커 중 하나이고ui-router다음 두 가지 사소한 변경 사항을 기재한 문서입니다.

.state('route1', {
        url: "/route", // <---- URL IS SHARED WITH ROUTE2
        views: {
            "viewA": {
                template: "route1.viewA"
            },
            "viewB": {
                template: "route1.viewB"
            }
        }
    })
    .state('route2', {
        url: "/route", // <---- URL IS SHARED WITH ROUTE1
        views: {
            "viewA": {
                template: "route2.viewA"
            },
            "viewB": {
                template: "route2.viewB"
            }
        }
    })

정상적으로 동작하고 있는 것 같습니다.URL은 그대로입니다.여기서 중복 작업이 얼마나 이루어집니까?승인된 사용법입니까?

이 부분은 생략해 주시면 감사하겠습니다.url주(州)에서...

업데이트: 상태에서 URL을 생략할 수 있습니다.플런커

질문 업데이트:승인된 사용법입니까?

URL이 없는 상태를 가질 수 있습니다.사실 URL이 필요한 주는 없습니다.이것이 설계의 핵심입니다.그렇다고는 해도, 나는 네가 위에서 한 짓은 하지 않을 거야.

2개의 스테이트가 같은 URL을 가지는 경우는, 추상 부모 스테이트를 작성해, 거기에 URL 를 할당해, 그 2개의 스테이트를 자녀로 합니다(어느쪽도 URL 를 사용하지 않습니다).

다른 응답에 추가하려면 여러 명명된 보기에서 URL을 사용하지 않습니다.

문서에서:

뷰 개체를 정의하면 해당 상태의 templateUrl, template 및 templateProvider는 무시됩니다.따라서 이러한 보기의 상위 레이아웃이 필요한 경우 템플릿을 포함하는 추상 상태와 '보기' 개체를 포함하는 레이아웃 상태에서 하위 상태를 정의할 수 있습니다.

명명된 보기를 사용하는 이유는 템플릿당 여러 개의 UI 보기를 사용하거나 단일 상태 내에서 여러 개의 보기를 가질 수 있기 때문입니다.이렇게 하면 URL이 변경되지 않더라도 라우팅을 사용하여 사이트의 일부를 변경할 수 있습니다.또한 자체 컨트롤러와 뷰가 있는 컴포넌트이기 때문에 다른 템플릿의 데이터를 재사용할 수도 있습니다.

예시와 함께 자세한 설명은 UI 라우터를 사용한 각도 라우팅을 참조하십시오.

언급URL : https://stackoverflow.com/questions/22791071/angular-ui-router-can-you-change-state-without-changing-url