我在Meteor应用程序中使用FlowRouter。在一种情况下,资源在某个日期/时间之前不可用,因此我们重定向到另一条路线。无论如何,使用重定向路径替换到受限资源的路由,以使受限资源路由不会出现在浏览器历史记录中。做会使历史(使用后退,前进)更加友好。
我可以在FlowRouter的triggersEnter
中为路由实现这一点,方法是在FlowRouter之外走一步,如下所示:
if(restricted) {
return window.location.replace(`/waitingroom/${resourceId}/user/${Meteor.userId()}`);
}
...但这会导致页面重新加载,这是不合需要的。
任何想法?
答案 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,因此在生产中使用前应仔细测试。