2017-01-19 66 views
0

我一直在谷歌和堆棧溢出環顧四周,以回答這個問題:使用Ember-cli 2.10,我怎樣才能在路由器中設置一個回調,它提供了關於前一個和當前URL的信息作爲將要被調用的路由的名稱?我想將所有這3個傳遞給分析平臺。路由器中的單個回叫,訪問前一個/當前url +路由信息?

我發現的每個示例都依賴於不推薦的Ember功能,或者只是普通的按照預期工作。喜歡聽這個答案。鑑於上述分析要求,我們也樂於聽到更好的設計。

+1

對於以前的URL'location.href'和獲取有關被稱爲可以得到它的路線的名字'willTransition'使用'過渡掛鉤'transition'說法。 targetName'參考[這個答案](http://stackoverflow.com/a/41543404/5771666)。但現在我認爲我們沒有準確的API來獲取currentURL。 – kumkanillam

+0

嘿,謝謝,這是一個很好的開始,我重新看了一下,併爲此前和下一個URL得到了這麼多:'const Router = Ember.Router.extend({0128} :function(){ console.log(「did transition hook」); console.log(location.href); } .on('didTransition'), willTransitionHook:function(){ console.log(「將過渡掛鉤「); console.log(location.href); } .on('willTransition') });' –

+0

唉:我還在學習如何在堆棧溢出中顯示代碼示例! –

回答

0

您的所有要求將包含在Public Router Service拉請求中。它包括性能currentRouteName,currentURL, location,rootURLtransitionTo方法。 這是在金絲雀建立,尚未生產準備。發揮您需要啓用此功能config/environment.js

"FEATURES": { 
     "ember-routing-router-service": true 
    } 

你可以只注入router服務隨時隨地獲取屬性。

router: Ember.inject.service(), 

Twiddle複製米格爾CAMBA

+0

謝謝!我會試試看。 –

相關問題