2012-10-09 5 views
11

어떻게 URL을 리디렉션하거나 업데이트 할 수 있습니까? 이것에 관한 좋은 문서를 찾을 수 없습니다. 기본적으로 $ routeParams를 동적으로 변경하고 url을 새 값으로 업데이트합니다.

내 코드는 다음과 같습니다

if ($routeParams.time) { 
     var url; 
     $routeParams.time = encodeURIComponent(value); 
     url = '/' + $routeParams.time + '/' + 'marketing/networks'; 
     $location.path(url); 
    } else { 
     $routeParams.time = encodeURIComponent(value); 
     url = '/' + $routeParams.time + $location.path(); 
     $location.path(url); 
    } 
+0

https://stackoverflow.com/questions/13636476/angularjs-best-way-to-update-route-parameter –

답변

23

내 대답에 대한 의견을 읽은 후, 아마도이 경우 올바른 대답이 아닌 것 같습니다. 이 솔루션을 사용하기 전에 의견 및 기타 답변을 읽어보십시오. 더 이상 Angular를 사용하지 않아서 응답 할 자격이 없다고 느낍니다.

당신은 제대로 위치를 변경하지만 그것의 변경을 실현 아니에요 AngularJS와 같습니다

나는 아래에 수정되지 않은 원래의 대답을 둡니다.

$location.path(url); 
$scope.$apply(); 

을 또는 다음과 같이 : 당신은 방법을 사용하여 문제를 해결할 수있는이 같은 스코프의 '$ 적용'http://docs.angularjs.org/api/ng.$rootScope.Scope

+3

표시되는 경우 $ 진행중인 오류가 발생할 수 있습니다 (http : // stackoverflow). co.kr/questions/18626039/apply-already-in-progress-error, 쉽게 고칠 수 있습니다. – DrCord

+2

비 앵귤러 이벤트에서 인터페이싱하지 않는 한 $ apply를 호출 할 필요가 없습니다. $ apply를 사용하는 경우 "안전한 적용"접근 방식을 사용하는 것이 좋습니다. https://coderwall.com/p/ngisma 적용을 사용해야하는 경우는 아닙니다! – MGot90

+0

$ location.path (url) 만 필요합니다. –

2

사용한다

$scope.$apply($location.path(url)); 

을 $ 여기 문서에 적용 참조 https://angular-ui.github.io/

ui-router

이것을 사용하면 ...

state.go ("route-name", {id : 4});

하여 더 대부분의 투표 대답은 걱정되는

라우팅 서비스에 내장보다 훨씬 더!

관련 문제