【问题标题】:Angulartics doesn't track my events on buttons or linksAngulartics 不会在按钮或链接上跟踪我的事件
【发布时间】:2015-01-27 21:45:24
【问题描述】:

我遵循了 Angulartics 网站上的“教程”,最后在我的按钮和链接上看到了这个事件代码:

按钮

<button class="btn btn-default" ng-controller="ctrl" ng-click="openModal()" analytics-on="click" analytics-event="button" analytics-categori="Main page" analytics-label="Modal bottom">Open modal!</button>

链接

<a ui-sref="ui.state" data-toggle="collapse" data-target="#navbar" analytics-on="click" analytics-event="button" analytics-categori="Header" analytics-label="FAQ">FAQ</a>

我已将 angulartics 和 angulartics.google.analytics 注入到我的应用程序中,它可以正常工作,任何地方都没有错误。我已经从 Google Analytics 代码-sn-p 中删除了 ga('send', 'pageview')。

如果我用这个 sn-p 把它放在我的控制器中,事件跟踪就会起作用:

$analytics.eventTrack('event', {category: 'category', label: 'label'});

有谁知道我在将代码添加到我的链接和按钮时可能做错了什么?

编辑

我已尝试删除 analytics-on="click",而只是启用了 analytics-on,但这也不起作用。

<button ng-click="openModal()" analytics-on analytics-event="button" analytics-categori="Main page" analytics-label="Modal bottom">Open modal!</button>

【问题讨论】:

  • 我不会将 ng-controller 放在您将 ng-click 附加到的同一元素上...这对我来说似乎是个坏主意我会将您的按钮包装在一个节点中并附加 ng-控制器。
  • 是的,这是一个不好的例子。但我会明确地调查它=)

标签: javascript angularjs google-analytics angulartics


【解决方案1】:

所以我弄清楚了问题所在,我在“analytics-category”中拼错了“category”,因此 Angulartics 没有注册任何事件。

感谢 btm1 让我想到其他解决方案 =)

【讨论】:

    【解决方案2】:

    要回答您的问题,ng-click 采用该元素的点击处理程序,analytics-on="click" 也是如此,这两者不能很好地协同工作,因为您有两个事件相互冲突。

    最好的办法是在您的控制器中创建一个函数,该函数通过 ng-click 触发,然后将您的谷歌分析代码放入该函数中。

    【讨论】:

    • 但是为什么它在链接上不起作用?是不是因为 UI Router 将 ui-sref 转换为在 analytics-on 之前触发的点击事件?
    • 因为 ui sref 可能会同时使用 mousedown 或 mouseup 或自定义点击事件。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-14
    • 2020-08-29
    • 1970-01-01
    • 1970-01-01
    • 2012-02-14
    相关资源
    最近更新 更多