> 웹 프론트엔드 > JS 튜토리얼 > ngRoute 경로의 #!# 문제를 해결하는 방법에 대해 이야기해 볼까요?

ngRoute 경로의 #!# 문제를 해결하는 방법에 대해 이야기해 볼까요?

青灯夜游
풀어 주다: 2021-05-11 10:34:49
앞으로
2481명이 탐색했습니다.

이 글에서는 ngRoute 경로가 나타날 때 #!# 솔루션을 소개하겠습니다. 도움이 필요한 친구들이 모두 참고할 수 있기를 바랍니다.

ngRoute 경로의 #!# 문제를 해결하는 방법에 대해 이야기해 볼까요?

관련 추천: "angularjs tutorial"

오픈 소스 프로젝트를 작업할 때 "angular-route": "^1.6.4"를 사용했는데

<a href="#about" class="ng-binding">About</a>
로그인 후 복사

라벨을 클릭하면 주소창에 http://localhost:9000/#!#about이 뜹니다.

$location을 인쇄하세요.

우리가 설정한 $location이 예상대로 Pseudo URL의 경로 부분에 표시되지 않고 해시 부분으로 실행되는 것을 발견했습니다.

이유는 루트 버전>1.6.0일 때 기본 hashPrefix가 '!'로 수정되었기 때문입니다.

은 다음 코드와 동일합니다.

$locationProvider.hashPrefix(&#39;!&#39;);
로그인 후 복사

아래에는 두 가지 솔루션이 제공됩니다.

1 hashPrefix를 1.6 이전 버전으로 복원합니다.

$locationProvider.hashPrefix(&#39;&#39;);
로그인 후 복사

2. href

<a href="#!about" class="ng-binding">About</a>
로그인 후 복사

의 형식을 변경하세요. ngRoute가 도입되면 태그가 ngRoute에 의해 다시 작성되는 것처럼 보입니다. / 문자열을 #에 직접 추가하는 대신 URL의 해시 부분에 추가하므로 과 같은 항목은 id="about"이 있는 태그로 이동할 수 없습니다. 저는 몇 가지 조사를 한 결과 명령을 작성한 다음 window.location.hash를 호출하여 이 문제를 해결할 수 있다는 것을 발견했습니다.

html

js

참고: 위의 정의는 모듈을 정의하는 requireJS입니다.

더 많은 프로그래밍 관련 지식을 보려면 프로그래밍 교육을 방문하세요! !

위 내용은 ngRoute 경로의 #!# 문제를 해결하는 방법에 대해 이야기해 볼까요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:csdn.net
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿