Mixpanel与EmberJS

Mat*_*ker 3 transitions mixpanel ember.js

注意:我开始写这个问题,并在写作中最终解决了问题.我会把它留在这里,希望它会帮助别人.

我已经用一段时间将我的头撞在墙上一段时间,并且不断得到不一致的结果.

尝试1(从这里)

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

因为mixpanel.track_pageview()被弃用,我不得不偏离这个例子.这导致错误的位置记录,因为一旦转换重写URL,我找不到获取新哈希路径的方法,并且此时URL尚未更新.

尝试2

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

这在URL散列更改时有效,但现在我没有在首次加载站点时进行任何跟踪.

kiw*_*ver 7

使用EmberJS 跟踪MixpanelGoogle Analytics等服务的路由更改,重新打开路由器并覆盖didTransition方法,在下一个Ember运行循环中调用mixpanel/analytics api.

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

这是一个jsbin