2016-10-28 4 views
0

대회 일정을 작성 중이며 대회 시간 중에 URL을 변경하고 싶습니다. 사용자가 토요일에 죄수의 페이지를로드하면 URL은 [URL]? day = saturday로 변경됩니다 (사용자가 다른 날을보기 위해 클릭하면 URL도 변경됩니다).페이지의 각주 변경 URL

history.replaceState이

angular.js:13920 Error: [$rootScope:infdig] 10 $digest() iterations reached. Aborting! 

를 일으키는 페이지로드 만의 문제는 그래서

$location.path('/').search('day='+day).replace(); 

같은 것을 사용 말한다 포럼 우연히하지만

로 나온다210

URL에/#을 사용하고 싶지 않습니다. 그래서 $ locationProvider를 사용하여 설명하는 포럼을 찾았습니다.

나는 심지어

app.config(function($locationProvider) { 
    $locationProvider.html5Mode(true); 
}) 

에 추가 그리고 그것은 여전히 ​​$ locationProvider이 정의되지 않은 말한다. 내가 뭘 잘못하고 있는지, 이것이 올바른 방향인지 알지 못한다. 단지 페이지를로드 할 때와 사용자가 클릭하여 하루를 바꿀 때를 바꿀 뿐이다.

답변

0

URL을 라우팅하고 바꿀 때 클릭시 라우트 변경 사항을 캡처하십시오. 오류 사용 및 구문은

.config(function($locationProvider) { 
    $locationProvider.html5Mode(true).hashPrefix('!'); 
}) 

잘 될 것 같다 그러나 당신이 URL 변경을 유지하려는 경우 당신은 routeChange 당신도 할 수있는 대안으로

.run(function($rootScope, $location) { 
    $rootScope.$on('$routeChangeStart', function(next, current) { 
    //... you could trigger something here like replacing the actual url ... 
    //$location.path('/').search('day='+day).replace(); 
}); 
}) 

를 URL로 변경해야 할 것 대안으로 https://github.com/angular-ui/ui-router보고 $의 location.url()에 대한 변경을한다. 당신이 ngRouter를 사용하려면 여전히 오류를 데모에 대한 plunkr 코드를 얻는 경우 상태 정의 https://github.com/angular-ui/ui-router/wiki

의 옵션을 onEnter에서) (교체하거나 해결 반드시 도움이 될 것입니다. 더 나은 디버그.

+0

대부분이 작동합니다. 그러나 사용자가 이벤트 이름을 클릭하면 이전과 같은 이벤트 페이지로 이동하지 않습니다. 그냥 URL을 변경합니다. – pinksharpii

+0

응용 프로그램에서 이벤트 이름이 페이지/경로입니까? 그렇다면 오류가 무엇입니까? 페이지 경로를 차단하는 차단 스크립트가 있어야합니다. 당신이 사용하고있는 routeChangeStart에 대한 코드를 넣을 수 있습니까? 가급적 단순한 plnkr이 좋을 것입니다. – Gary