2014-01-08 5 views
0

까지 임 Angular.js을 사용하고 내가 여러 경로를 가지고 :리디렉션 AngularJS와는 하나의 디렉토리

http://localhost/tool/new 
http://localhost/tool/report/#/59FD59D56F20DDFA722F5B31796CAE3396C 

도구/새가 사용자가 도구를 사용하여 새 보고서를 만들 것 형태이다. 그런 다음 프로그램은 백그라운드에서 실행되며 사용자는 tool/report/#/their-id로 이동하여 보고서에 액세스 할 수 있습니다. 여기서 their-id는 큰 SHA1 해시입니다.

해시가 경로 매개 변수 인 경우 해당 해시가 유효하지 않으면 사용자를 다시 도구/새로 리디렉션해야합니다. 나는 $ 위치를 사용하려고했습니다

tool/new/index.html // The create new report form 
tool/report/index.html // The report area 

같이 리디렉션 : 임 데 문제는 프로그램 파일 구조라는 것이다

$location.path('/new'); 

을하지만 그것은 단지 도구/보고서/#로 리디렉션/새로운 그리고 그건 도움이되지 않습니다.

Angular가 한 디렉토리 위로 이동하고 리디렉션하는 방법을 아는 사람이 있습니까?


Branimir의 답을 기반으로 URL을 가져 와서 현재 (보고서) 디렉토리에서 잘라냅니다. 도구 이름과 도메인은 서버가 위치한 위치에 따라 변경 될 수 있기 때문에이 작업을 수행합니다. 이것은 나를 위해 일했다. 여기 https://github.com/m-e-conroy/angular-dialog-service/blob/master/dialogs.min.js에서 $ 대화 상자를 사용

var dialog = $dialogs.notify('We were unable to find your tool run.','<p>It is possible that the URL you have entered is incorrect or that your tool run has been deleted due to inactivity.</p><p>Please confirm your URL and try again; or create a new tool run.</p>'); 
dialog.result.then(function(btn){ 
    var url = $location.absUrl(); 
    var base = url.substring(0,url.indexOf('/report/')); 
    window.location = base + '/#/new'; 
},function(btn){}); 

참고 임은 ID가 나쁜 사용자에게 있습니다. 이 페이지 사용을 다시로드하려면

답변

1

는 :

$window.location.href = 'http://localhost/tool/new'; 

$ 위치 서비스가 페이지를 다시로드하지 않습니다, 같은 AngularJS와 응용 프로그램의 URL을 변경합니다.