2014-01-08 3 views
0

Im используя Angular.js и у меня есть несколько маршрутов:Перенаправление AngularJS до одной директории

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

инструмента/новая является формой, в которой пользователь может создать новый отчет с помощью инструмента. Затем программа запускается в фоновом режиме, и пользователь может получить доступ к отчету, перейдя в tool/report/#/their-id, где их-id - большой хэш SHA1.

Этот хэш является параметром маршрута, если этот хэш недействителен. Мне нужно перенаправить пользователя обратно в инструмент/новый. Проблема Im имея в том, что структура файла программы:

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

Я пытался использовать $ место для перенаправления, как это:

$location.path('/new'); 

Но это только перенаправляет инструмент/отчет/#/new, и это не помогает.

Кто-нибудь знает, как рассчитать Угловое перемещение вверх по одному каталогу и перенаправление?


Основываясь на ответе Бранимира, я получаю URL-адрес и обрезаю его в текущем каталоге (отчете). Я делаю это, потому что имя инструмента и домен могут меняться в зависимости от того, на каком сервере он находится. Это сработало для меня.

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){}); 

Примечание Im используя $ диалоговых здесь https://github.com/m-e-conroy/angular-dialog-service/blob/master/dialogs.min.js, чтобы сообщить пользователю идентификатор плох.

ответ

1

Если вы хотите перезагрузить использование страницы:

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

сервис $ местоположение не перезагружать страницу, она изменяет URL в то же AngularJS приложения.

Смежные вопросы