2014-10-07 29 views
0

我見過this thread關於如何追加/修改查詢參數而不重複,但我不能讓它工作。如何使用鐵路由器動態設置查詢字符串或參數?

我在我的Meteor應用程序中有一個頁面,列出項目並允許過濾。我希望篩選功能是基於網址的,因此每次對篩選器所做的更改都應反映在網址中。 我使用鐵路路由器,然後相應地更新訂閱。

由於某些原因,我無法修改查詢字符串。如果從Template.templateName.events(...)稱爲此代碼不會觸發任何動作:

# valuePairs = ["foo=bar", "bar=foo"]  
newUrl = Router.current().route.path {}, { query: valuePairs.join('&') } 
Router.go newUrl 

但如果我叫Router.go(newUrl)從命令行,預期的結果發生,即URL更新。

是否有另一種首選方法來修改查詢?

如果不是,我怎樣才能讓上面的代碼工作?

UPDATE - 我剛剛發現運行事件後,如果我回到瀏覽器歷史記錄中,我可以看到正確的URL。它看起來像(?)觸發另一個頁面加載回到原始頁面。

回答

0

正是基於

,如果我回去我的瀏覽器歷史記錄,我可以看到正確的URL

你抑制實際的鏈接事件? <a href='#'>會馬上翻轉你。

Template.tempyTheTemplate.events({ 
    'click awesomeButton': function() { 
     // URL stuff 
     Router.go(magicURL); 
     return false; // <-- suppresses the event 
    } 
}); 
+0

哦,我已經完全忘記了這個問題。您在這裏提出的問題在我仍然遇到問題時已在[GitHub]上解決(https://github.com/iron-meteor/iron-router/issues/900#issuecomment-59673360)。無論如何,謝謝你。我(親自)發現'event.preventDefault()'更具可讀性/明顯性,但這只是首選項。 – 2015-07-09 14:51:36

相關問題