2015-04-20 1 views
0

Я ничего не смог найти по этой теме. То, что я пытаюсь сделать, - это когда пользователь обновляет страницу, железный маршрутизатор перенаправляет пользователя на другой шаблон.Meteor JS: Iron Router Функция обновления

Что-то вдоль линий

Router.onBeforeAction(function(){ 
    //If(refresh) reroute to home template 
    //Else this.next() 
}); 

ли железо маршрутизатор все, что делает функциональность?

Спасибо за ваше время, LL

+0

Это звучит как вопрос, связанный с проблемой с лучшим решением, чем то, что вы изначально ищете. Обновление страницы в основном загружает страницу, опять же. Что вы пытаетесь выполнить, для того, чтобы одна и та же страница внезапно загружалась по-разному только из-за того, как она была загружена? – Brian

+0

У меня многоступенчатая форма (всего 3 страницы). Все данные хранятся в сеансовых варах до тех пор, пока все формы не будут завершены. Поэтому, если пользователь обновит среднюю форму, все данные будут потеряны, и форма должна будет сброситься. Возможно, вы правы в том, что моя структура может быть переработана. В конце концов, я, вероятно, объединю все страницы форм на одну страницу, но пока это одно из решений, на которые я смотрел. – kLai

+2

Проверьте, установлен ли ваш сеанс в созданном обратном вызове 'Template ['myTemplate']. OnCreated = function() {}' и 'Router.go (...)', где вам нужно быть, если оно не установлено. Это будет мой подход. – below9k

ответ

0

Спасибо за идею below9k! Вот с чем я пошел.

В моем первом шаблоне формы:

Template.form1.onRendered(function(){ 
    Session.set('formState', true); 
}) 

В функции маршрутизатора железа:

Router.onBeforeAction(function(){ 
    if(Session.get('formState')){ 
    this.next(); 
    }else{ 
    Router.go('form1'); 
    } 
    }, 
    {only: ['form2', 'form3']} 
); 

Еще раз спасибо за ответ! Работает как шарм.

LL