Есть ли способ получить предыдущее расположение страницы, прежде чем перейти на следующую страницу в IronRouter?Предыдущая страница на IronRouter
Есть ли событие, которое я могу использовать для получения этой информации?
Заранее спасибо.
Есть ли способ получить предыдущее расположение страницы, прежде чем перейти на следующую страницу в IronRouter?Предыдущая страница на IronRouter
Есть ли событие, которое я могу использовать для получения этой информации?
Заранее спасибо.
Вы можете добиться желаемого поведения с помощью крючков. не
// onStop hook is executed whenever we LEAVE a route
Router.onStop(function(){
// register the previous route location in a session variable
Session.set("previousLocationPath",this.location.path);
});
// onBeforeAction is executed before actually going to a new route
Router.onBeforeAction(function(){
// fetch the previous route
var previousLocationPath=Session.get("previousLocationPath");
// if we're coming from the home route, redirect to contact
// this is silly, just an example
if(previousLocationPath=="/"){
this.redirect("contact");
}
// else continue to the regular route we were heading to
this.next();
});
EDIT: это с помощью iron:[email protected]
Поскольку Железный маршрутизатор использует обычный History API, вы можете просто использовать обычный метод JS:
или
history.back();
Редактировать: или проверить предыдущий путь, не следуя его:
document.referrer;
'document.referrer' предоставит вам только начальное местоположение, откуда вы пришли, оно не обновляется t он API истории HTML5. – saimeunt
Этот метод имеет проблему с sAlert, если вы хотите сохранить сообщение для следующего маршрута – Kostanos
, этот метод также выполняет обратную передачу – WtFudgE
Извинения для натыкаясь старую нить, но хорошо, чтобы эти вещи ответить дата saimeunt превыше теперь осуждается, как this.location.path больше не существует в железном Router так должно напоминать что-то вроде ниже:
Router.onStop(function(){ Session.set("previousLocationPath",this.originalUrl || this.url); });
Или, если у вас установлен сеанс JSON (см Session JSON)
Router.onStop(function(){ Session.setJSON("previousLocationPath",{originalUrl:this.originalUrl, params:{hash:this.params.hash, query:this.params.query}}); });
только предостережений с Thisis, что первая страница будет всегда населяет URL-адрес поле (this.url и this.originalUrl, кажется, нет никакой разницы между ними) с полной URL (http://...) В то время как каждый из последующих страниц только журналы относительный домен, т. е./home без корневого url, не уверен, является ли это предполагаемым поведением или нет из IR, но в настоящее время это полезный способ определить, была ли это загрузка первой страницы или нет.
Вы можете использовать API истории: http: /stackoverflow.com/questions/13298743/history-api-javascript-pushstate-get-previous-url –