我试图向用户显示付款弹出窗口,只要他点击付费对象。 但是他支付后,他应该直接输入他点击的内容。实际更改模板之前的路由器上的Iron Router挂钩
因此,我认为它是一个很好的解决方案来解决这个问题,因为我希望页面上的每个链接重定向到这个内容来显示这个弹出窗口。
我的问题是我想在重定向用户之前显示弹出窗口。 所以我尝试了onBeforeAction钩子和东西,但所有与铁路由器工作似乎只在浏览器的URL更改并且当前模板被卸载后挂钩。
你知道如何得到这种行为吗?
干杯
我试图向用户显示付款弹出窗口,只要他点击付费对象。 但是他支付后,他应该直接输入他点击的内容。实际更改模板之前的路由器上的Iron Router挂钩
因此,我认为它是一个很好的解决方案来解决这个问题,因为我希望页面上的每个链接重定向到这个内容来显示这个弹出窗口。
我的问题是我想在重定向用户之前显示弹出窗口。 所以我尝试了onBeforeAction钩子和东西,但所有与铁路由器工作似乎只在浏览器的URL更改并且当前模板被卸载后挂钩。
你知道如何得到这种行为吗?
干杯
这是一个普遍使用的情况下,我不认为是目前铁路由器框架内直接实现的(虽然我会很高兴得到纠正!)。正如您发现的那样,onBeforeAction
在页面渲染之前运行,但在新的路径运行之后,旧页面已经消失。
实际上,您希望排队运行新路线,直到完成某个操作。我遇到过这种需求的用例是page transitions,对此,最好的解决方案似乎完全与您的建议完全相反:即将逻辑添加到附加到链接的事件,并且只重定向到新的路线,一旦逻辑已经圆满完成(即弹出已关闭在你的情况)。
我同意在路由器上做一些事情是一个明智的方法来解决这个问题,但我不确定它在铁路路由器中是否可行。请注意,这有already been raised虽然!
这个工作坊? '卸载 - 当您离开新路线的路线时只运行一次'。 从 https://github.com/EventedMind/iron-router/blob/devel/DOCS.md#unload-hook
在此基础上answer,在这里是如何使用Router.onStop()
勾路由器:
// onStop hook is executed whenever we LEAVE a route
Router.onStop(function(){
//check if the current route is the page from where you need to show your
//popup and show it based on, for instance, a session variable containing
//the previously clicked content id.
});