Meteor FlowRouter:替换受限路径的历史路径

时间:2016-12-07 20:26:22

标签: redirect meteor browser-history flow-router

我在Meteor应用程序中使用FlowRouter。在一种情况下,资源在某个日期/时间之前不可用,因此我们重定向到另一条路线。无论如何,使用重定向路径替换到受限资源的路由,以使受限资源路由不会出现在浏览器历史记录中。做会使历史(使用后退,前进)更加友好。

我可以在FlowRouter的triggersEnter中为路由实现这一点,方法是在FlowRouter之外走一步,如下所示:

if(restricted) {
  return window.location.replace(`/waitingroom/${resourceId}/user/${Meteor.userId()}`);
}

...但这会导致页面重新加载,这是不合需要的。

任何想法?

1 个答案:

答案 0 :(得分:1)

传递给static void Main(string[] args) { Console.WriteLine("what is the value of 3 + 8?"); var number = int.Parse(Console.ReadLine()); if (number == 11) { Console.WriteLine("well done"); Console.WriteLine("press enter once"); Console.ReadLine(); } else { Console.WriteLine("its 11 u idiot!!!"); Console.ReadLine(); } Console.WriteLine("what is the value of 23132-23131?"); number = int.Parse(Console.ReadLine()); if (number == 1) { Console.WriteLine("oh yeah!"); Console.ReadLine(); } else { Console.WriteLine("u r such a noob!"); Console.ReadLine(); } } 的函数有第2个名为triggersEnter的参数,您可以使用它重定向到其他页面,而无需重新加载页面并拥有干净的历史记录:

redirect

<强>更新

我不确定为什么需要同步。无论如何,FlowRouter使用场景后面的Page.js来进行导航,如果你不能使用FR.route('/restricted-route', { name: 'RestrictedRoute', triggersEnter: [function(context, redirect) { redirect('/replace-route'); }] }); FR.route('/replace-route', { name: 'ReplaceRoute', action() { // ... } }); 那么这应该可行:

redirect

注意:这不是公共API,因此在生产中使用前应仔细测试。