2014-09-02 48 views
1

我希望我的鐵路路由器在掛鉤前僅在我的路徑改變時才執行。流星鐵路由器只有在路徑發生變化時才執行動作

我在我的標題(佈局)中有一個關鍵字搜索字段,當我更改頁面時我要重置該字段,但當我留在同一頁面並觸發某些事件時,該字段不會重置。

我該怎麼做?

這是我:即使我點擊一個按鈕,不改變路線

Router.onBeforeAction -> 
    $(".notification").remove() 
    Session.set("keyword_search","") 
    $("#keyword-search").val("") 
    return 

的onBeforeAction鉤被執行。這不是我想要的......

我嘗試使用document.referrer這樣

Router.onBeforeAction -> 
    $(".notification").remove() 
    if document.referrer.indexOf @path == -1 #only if new path 
    Session.set("keyword_search","") 
    $("#keyword-search").val("") 

,而是因爲當我點擊一個按鈕的頁面它不工作,引薦仍然是最後一頁與不同的URL和我的keyword_search字段被重置。

有什麼想法?

回答

0

這裏的解決方案是使用onRun鉤子。

onRun在每個路由更改時被觸發(而不是在每個路由器啓動時,因爲我認爲...)。

0

爲什麼不把路徑存儲在Session變量中並檢查它是否被更改?從你的第二個代碼塊:

Router.onBeforeAction -> 
    $(".notification").remove() 
    unless Session.equals("current_path", @path) # only if new path 
    Session.set("current_path", @path) 
    Session.set("keyword_search", "") 
    $("#keyword-search").val("") 
+0

我嘗試了會話變量,但是它在重新計算會話變量被設置時的內容,並且在最後電流總是等於先前的路徑 – ndemoreau 2014-09-06 07:41:28

相關問題