2013-06-05 6 views
8

私はデュランダル1.2を使用してDurandal Router PluginとGoogle AnalyticsによるSPAにページビューを追跡したいよ: window._gaq.push(['_trackPageview', location.pathname + location.search + location.hash]デュランダルグーグルアナリティクスのトラッキング

私はなhashchangeイベントをリッスン、あるいはSammy経由にフック可能性が知っています。私はむしろDurandalが現在rewrittenであることをサミーの依存関係を取り除くために与えているとは思っていません。

私の質問は、これをDurandal Router Pluginを使用して設定する方法はありますか?

答えて

5

ルーターでonNavigationCompleteを見てください。あなたの分析を行うためにそれをオーバーライドすることができます:

// Store reference to router's onNavigationComplete so you can call it 
var onNavigationComplete = router.onNavigationComplete; 

router.onNavigationComplete = function (routeInfo, params, module) { 
    // Run the default onNavigationComplete 
    onNavigationComplete.call(this, routeInfo, params, module); 

    // Analytics! 
    window._gaq.push(['_trackPageview', location.pathname + location.search + location.hash] 
}; 

明らかにあなたがそのようなあなたのmain.jsのように、非常に初期のアプリケーションのライフサイクルで、このどこかを行う必要があります。

4

また、イベントにアタッチすることもできます。そのため、ルータの元の機能を保存する必要はありません。

//Update anaytics whenever the router navigates 
router.on('router:navigation:complete', function(instance, instruction) { 
    window._gaq.push(['_trackPageview', instruction.fragment]); 
}); 
関連する問題