programing

AngularJS - 페이지를 가득 채운 상태에서 리다이렉트를 하려면 어떻게 해야 합니까?

lastmemo 2023. 3. 2. 21:56
반응형

AngularJS - 페이지를 가득 채운 상태에서 리다이렉트를 하려면 어떻게 해야 합니까?

페이지가 로드될 때 웹 서버의 쿠키가 새로 고쳐지도록 전체 페이지를 새로 고치는 리디렉션을 수행합니다. window.location = "/#/Next"그리고.window.location.href = "/#/Next"동작하지 않습니다.서버에 영향을 주지 않는 Angular 루트를 실행하고 있습니다.

Angular 컨트롤러 내에서 전체 서버 요청을 하는 올바른 방법은 무엇입니까?

태그의 경우:

계속 붙어있어야 해target="_self"<a>태그

Angular는 세 가지 경우입니다.JS는 전체 페이지 새로고침을 수행합니다.

  • 대상 요소를 포함하는 링크
    예:<a href="/ext/link?a=b" target="_self">link</a>
  • 다른 도메인으로 가는 절대 링크
    예:<a href="http://angularjs.org/">link</a>
  • 기본이 정의될 때 다른 기본 경로로 이어지는 '/'로 시작하는 링크
    예:<a href="/not-my-base/link">link</a>

javascript 사용:

$locationservice에서는 URL만 변경할 수 있으며 페이지를 새로고침할 수 없습니다.URL을 변경하고 페이지를 새로고침하거나 다른 페이지로 이동해야 할 경우 하위 수준의 API를 사용하십시오.$window.location.href.

참조:

JS 코드(HTML 앵커가 아님)에서 작업하는 것과 같은 문제가 있었습니다.이 문제를 해결한 방법은 다음과 같습니다.

  1. 필요에 따라서, 현재의 URL 를 가상으로 변경합니다.$location서비스.이것은, 행선지가 현재의 URL 의 변경에 지나지 않는 경우에 도움이 되는 경우가 있기 때문에, 다음의 기능을 이용할 수 있습니다.$location도우미 메서드예: 우리는 달렸습니다.$location.search(..., ...)querystring 파라미터의 값만 변경합니다.

  2. 현재를 사용하여 새 대상 URL을 빌드합니다.$location.url()필요한 경우.기능하기 위해서, 이 새로운 것은 스키마, 도메인, 포토 다음에 모든 것을 포함할 필요가 있었습니다.예를 들어 다음과 같이 이동합니다.

http://yourdomain.example/YourAppFolder/YourAngularApp/#/YourArea/YourAction?culture=en

다음의 URL 을 설정합니다.

var destinationUrl = '/YourAppFolder/YourAngularApp/#/YourArea/YourAction?culture=en';

(리더와 함께)'/'(도 마찬가지입니다).

  1. 낮은 수준에서 새 대상 URL 할당:$window.location.href = destinationUrl;

  2. 강제 새로고침(아직 로우 레벨):$window.location.reload();

검색 후 히트 세션과 트라이얼 세션을 부여한 후 먼저 다음과 같은 URL을 지정함으로써 해결할 수 있습니다.

$window.location.href = '/#/home/stats';

그 후 새로고침

$window.location.reload();

저도 같은 문제가 있었어요.사용할 때window.location,$window.location또는 심지어<a href="..." target="_self">루트는 페이지를 갱신하지 않습니다.그래서 캐시된 서비스가 사용되는데 내 앱에서 원하는 서비스가 아닙니다.나는 그것을 더해서 해결했다.window.location.reload()끝나고window.location라우팅 후 강제로 페이지를 새로고침합니다.이 방법은 페이지를 두 번 로드하는 것 같습니다.지저분한 속임수일 수도 있지만 효과가 있어.지금은 이렇게 하고 있습니다.

  $scope.openPage = function (pageName) {
      window.location = '#/html/pages/' + pageName;
      window.location.reload();
  };

이거 드셔보세요

$window.location.href="#page-name";
$window.location.reload();

언급URL : https://stackoverflow.com/questions/16002984/angularjs-how-can-i-do-a-redirect-with-a-full-page-load

반응형