5

IE9의 문제를 해결하기 위해 하지만 메신저가 IE9에서 페이지에 액세스하려고 할 때 전혀 액세스 할 수 없습니다. 읽은 솜씨를 읽은 후 나는 IE9가 url에서 # 뒤에 나오는 모든 것을 무시하고 사용자를 호스트 url (url의 # 앞에있는 모든 것)로 리디렉션한다는 것을 알게되었습니다. 그리고 html5mode의 표준 fallback은 hashbang-mode입니다. Angular docs for $location대체 내가이 설정 AngularJS와의 검색 응용 프로그램을 만드는거야

내 질문에 누군가가이 문제가있는 경우 또는 URL에 hashbangs의 사용 주위에 어떤 방법이 있는지 알고 있습니다. 더 많은 문서가 필요할 경우 알려 주시면 제공해 드리겠습니다!

편집 :

$scope.$on('$locationChangeSuccess', function() {; 
     $scope.searchQuery = $location.search()['q']; 
     $scope.search(); 
    }); 

편집 : "!" 에만 추가되므로 $locationProvider.hashPrefix('!');가 작동하지 않습니다 추가하기이 컨트롤러 내부 url의 "#"다음에.

각 문서에서

참조 이미지 :

Angular docs on locationprovider

+0

"경로 변경이 완료된 후 routeParams 만 업데이트됩니다, 사용 사례 확신 메신저 :

$location 서비스에 대한 대안은 참조 $routeParams을 주입하는 것입니다 IE9는 URL의 # 뒤에 나오는 모든 것을 무시하고 사용자를 호스트 URL로 리디렉션합니다. " URL에서 해시가 작동하는 방식은 무엇입니까? Angular는이를 가져 와서 내부적으로 사용할 수있는 URL로 파싱합니다. –

+0

그래서 문제가 무엇입니까? IE9에서 액세스 할 수없는 이유는 무엇입니까? 문제 해결을 수행 했습니까? 문서에서 볼 수 있듯이 폴백은 정확합니다. – falsarella

답변

0
IE9가 history.pushState를 지원하지 않습니다

, 참조 : 따라서 http://caniuse.com/#feat=history

이 같은 html5Mode 가능 : $locationProvider.html5Mode(true)는 IE9의 경우는로 폴백합니다 URL에 #이 없습니다 -이 방법이 없습니다.

$location.search();당신은 다음과 같이 검색 PARAMS를 얻을 수 있습니다 : $location.search().paramName

추가 정보에 대한 https://docs.angularjs.org/api/ng/service/ $ 위치를 참조하십시오 var searchObject = $location.search(); 당신이 할 수있는 특정 매개 변수를 얻을 수 있습니다. https://docs.angularjs.org/api/ngRoute/service/ $ routeParams 을하지만 솜 읽기를 수행 한 후 내가 발견

+0

나는 html5Mode를 사용할 수 있지만 IE9에서는 내 앱이 무한 직접 루프에 갇히게됩니다. 가을철에 제대로 작동하려면 어떻게해야합니까? – duyn9uyen