emberjs ember create component bubbling ember.js transitions mixpanel

ember.js - create - Mixpanel con EmberJS



ember onclick (2)

Nota: comencé a escribir esta pregunta, y al escribirla terminé solucionando el problema. Lo dejaré aquí y espero que ayude a alguien más.

He estado golpeando mi cabeza contra la pared con esto por un tiempo y sigo obteniendo resultados inconsistentes.

Intento 1 (desde aquí )

App.ApplicationController = Ember.Controller.extend({ routeChanged: function (){ mixpanel.track("pageview", {"url": window.location.href }); }.observes(''currentPath'') });

Tuve que mixpanel.track_pageview() del ejemplo ya que mixpanel.track_pageview() está en desuso. Esto dio como resultado un registro incorrecto de la ubicación, ya que no puedo encontrar la manera de obtener la nueva ruta hash una vez que la transición reescribe la URL y la URL no se ha actualizado en este punto.

Intento 2

$(window).on(''hashchange'', function(){ mixpanel.track("pageview", {"url": window.location.href }); });

Esto funciona cuando el hash de URL cambia, pero ahora no obtengo ningún seguimiento cuando el sitio se carga por primera vez.


Solución final

$(window).on(''hashchange'', function(){ mixpanel.track("pageview", {"url": window.location.href }); }); Ember.Application.initializer({ initialize: function(container, application) { mixpanel.track("pageview", {"url": window.location.href }); } });

Ahora obtengo un seguimiento de las cargas de página iniciales, así como las transiciones dentro de la aplicación.


Haga un seguimiento de los cambios de enrutamiento para un servicio como Mixpanel o Google Analytics con EmberJS, vuelva a abrir el enrutador y sobrescriba el método didTransition , invoque la API de mixpanel / analytics dentro del siguiente ciclo de ejecución de Ember.

Ember.Router.reopen({ didTransition: function(paths){ this._super(paths); Ember.run.next(function(){ path = window.location.href; mixpanel.track("pageview", {"url": path }); }); } });

Aquí hay un jsbin