2014-08-27 22 views
1

我試圖向用戶顯示付款彈出窗口,只要他點擊付費對象。 但是他支付後,他應該直接輸入他點擊的內容。實際更改模板之前的路由器上的Iron Router掛鉤

因此,我認爲它是一個很好的解決方案來解決這個問題,因爲我希望頁面上的每個鏈接重定向到這個內容來顯示這個彈出窗口。

我的問題是我想在重定向用戶之前顯示彈出窗口。 所以我嘗試了onBeforeAction鉤子和東西,但所有與鐵路由器工作似乎只在瀏覽器的URL更改並且當前模板被卸載後掛鉤。

你知道如何得到這種行爲嗎?

乾杯

回答

0

這是一個普遍使用的情況下,我不認爲是目前鐵路由器框架內直接實現的(雖然我會很高興得到糾正!)。正如您發現的那樣,onBeforeAction在頁面渲染之前運行,但在新的路徑運行之後,舊頁面已經消失。

實際上,您希望排隊運行新路線,直到完成某個操作。我遇到過這種需求的用例是page transitions,對此,最好的解決方案似乎完全與您的建議完全相反:即將邏輯添加到附加到鏈接的事件,並且只重定向到新的路線,一旦邏輯已經圓滿完成(即彈出已關閉在你的情況)。

我同意在路由器上做一些事情是一個明智的方法來解決這個問題,但我不確定它在鐵路路由器中是否可行。請注意,這有already been raised雖然!

2

在此基礎上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. 

}); 
相關問題