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

一段时间以来,我一直在用这个头撞墙,并不断得到不一致的结果。

尝试 1 (来自 here )

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

由于 mixpanel.track_pageview() 已被弃用,我不得不偏离示例。这导致位置记录不正确,因为我无法找到一种方法来获取转换重写 URL 后新的哈希路径将是什么,并且此时 URL 尚未更新。

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

这在 URL 哈希更改时有效,但现在我在第一次加载网站时没有得到任何跟踪。

最佳答案

使用 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 });
    });
  }
});

这是一个 jsbin

关于ember.js - 带有 EmberJS 的 Mixpanel,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21010093/

10-16 18:28