я разрабатываю приложение в AngularJS. По сути, у меня есть «домашняя» страница и «новый проект». На главной странице у меня есть меню со ссылкой на «новый проект».
Я настроил $stateProvider следующим образом:
$stateProvider.state('home', {
url: '/',
templateUrl: 'partials/home.jsp'
}).state('newproject', {
url: '/newproject',
templateUrl: 'partials/new-project.html'
})
Итак, когда я захожу в приложение, я на главной странице. Затем я нажимаю ссылку «новый проект», и я нахожусь на странице «новый проект». Теперь URL-адрес http://myapp/newproject
Моя проблема в том, что когда я обновляю страницу, я хочу, чтобы меня перенаправили на домашнюю страницу, даже если URL-адрес в строке моего браузера все еще http://myapp/newproject
Как я могу этого добиться?
ОБНОВЛЕНИЕ:
Большое спасибо squiroid за ответ. Я использовал второе решение, и оно сработало как шарм. Небольшое уточнение, на случай, если у кого-то возникнет такая же проблема, перед перенаправлением домой вы должны предотвратить работу по умолчанию. Итак, правильный рабочий код:
$rootScope.$on("$locationChangeStart", function(event, next, current) {
if(next==current && next=='/newproject')
event.preventDefault();
$state.go('home');
});