2014-12-27 1 views
0

Мне нужна возможность программно маршрутизировать на разные страницы. Насколько я могу сказать, что единственный способ на самом деле оказать маршрут от в объявлении маршрута как таковые:Есть ли железо: маршрутизатор имеет эквивалент перехода EmberToRoute?

Router.route('/', function() { 
    this.render('index'); 
}); 

Что я ищу является возможность с некоторой произвольной частью коды для перехода к другой маршрут. то есть if(whatever) Route.transionToRoute('homepage');

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

Может ли то, что я описал, сделать с помощью железного маршрутизатора?

Спасибо за любую помощь :)

ответ

1
Router.route('/', function() { 
    if(this.ready()){ 
    if(Meteor.user()){ 
     this.render('news'); 
    }else{ 
     Router.go('register'); 
    } 
    }else{ 
    this.render('loading'); 
    } 
}); 

Это довольно просто, сначала он ждет this.ready() если у вас есть какие-либо подписок назвать, то, если вы вошли в систему (Meteor.user() объект доступен) он renderes новости , в противном случае перейти к регистрации тракту

+0

Genius !!! Спасибо :) – micahblu

+0

Возможно, слишком скоро говорит:/Переадресация работает, однако Meteor.user() не работает :(У меня такая же проблема из другого моего вопроса, который является Meteor.user() или даже Meteor.users.find(). fetch(). length всегда возвращает пустое, но я могу ввести его в свою консоль и получить результат? – micahblu

+0

Вы указали путь this.subscribe ('name'). wait() ? – Sindis

1

Если вы находитесь внутри контроллера маршрута, вы можете позвонить:

this.redirect('routeNameOrURL'); 


Если вы где-нибудь в вас приложения, вы делаете:

Router.go('routeNameOrURL'); 


И появится новое состояние в истории браузера.

Вы можете проверить Iron Router официального Руководства по деталям: https://github.com/EventedMind/iron-router/blob/devel/Guide.md#using-redirects

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