2013-06-05 11 views
8

sto usando Durandal 1.2 e il Durandal Router Plugin e volendo tracciare pagine viste nella SPA attraverso Google Analytics: window._gaq.push(['_trackPageview', location.pathname + location.search + location.hash]Durandal Google Analtyics monitoraggio

So che avrei potuto ascoltare l'evento hashchange o anche agganciare in via Sammy . Preferirei non farlo dato che Durandal è attualmente in fase di rewritten per rimuovere la dipendenza da Sammy.

La mia domanda è, c'è un modo per configurarlo utilizzando il plug-in Durandal Router?

risposta

5

Dai un'occhiata a onNavigationComplete nel router. Si potrebbe ignorare che per fare le vostre analisi:

// 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] 
}; 

Ovviamente avrete bisogno di fare questo da qualche parte molto presto nel ciclo di vita dell'applicazione, come ad esempio nel vostro main.js.

4

È inoltre possibile collegare all'evento navigation complete, in modo da non dover memorizzare la funzione originale del router.

//Update anaytics whenever the router navigates 
router.on('router:navigation:complete', function(instance, instruction) { 
    window._gaq.push(['_trackPageview', instruction.fragment]); 
}); 
Problemi correlati