Ember.js 关于如何在点击时记录谷歌分析事件,有什么好主意吗?

Ember.js 关于如何在点击时记录谷歌分析事件,有什么好主意吗?,ember.js,google-analytics,Ember.js,Google Analytics,除了记录每个位置的变化,我还想记录这些点击事件,因为很多时候用户会点击某个东西,而点击不会更新位置散列。如果可以通过拦截对action helper的调用来记录这些事件,这将非常有用。我试过四处闯荡,但到目前为止运气不好。我仍然可以将它们记录在事件处理程序中。只是感觉有点冗长。有人有类似的问题吗?有什么想法吗 为了明确起见,例如,在路线或控制器中没有下面这样的代码,对google analytics的调用可以在动作事件触发时触发 clickMe:function(){ App.Analytics

除了记录每个位置的变化,我还想记录这些点击事件,因为很多时候用户会点击某个东西,而点击不会更新位置散列。如果可以通过拦截对action helper的调用来记录这些事件,这将非常有用。我试过四处闯荡,但到目前为止运气不好。我仍然可以将它们记录在事件处理程序中。只是感觉有点冗长。有人有类似的问题吗?有什么想法吗

为了明确起见,例如,在路线或控制器中没有下面这样的代码,对google analytics的调用可以在动作事件触发时触发

clickMe:function(){
App.Analytics.logEvent({category:“userEvent”,action:“click”,label:“click me”,value:1});
},


我试图定义一个定制的助手,它基本上是动作助手的包装器,它使用从调用者那里获得的信息来调用google分析事件,然后在内部调用ember的动作助手。我在模板中使用自己的助手进行尝试,但日志事件仅在模板第一次呈现时发生。如果我一直单击视图,则不会记录任何用户活动。

您可以使用javascript的事件冒泡机制来完成此操作。在任何余烬视图中,添加为事件命名的处理程序将自动为该事件设置侦听器

通过将这样一个
click
处理程序放置在
ApplicationView
上,您可以监听所有嵌套视图的所有单击

App.ApplicationView = Em.View.extend({
  click: function(event) {
    console.log('ApplicationView.click', event);
  }
});

从这里,您可以使用
this.get('controller').send(event)
通知控制器、路由等,以访问调用google analytics代码的函数。

您可以使用javascript的事件冒泡机制来完成此操作。在任何余烬视图中,添加为事件命名的处理程序将自动为该事件设置侦听器

通过将这样一个
click
处理程序放置在
ApplicationView
上,您可以监听所有嵌套视图的所有单击

App.ApplicationView = Em.View.extend({
  click: function(event) {
    console.log('ApplicationView.click', event);
  }
});

从这里,您可以使用
this.get('controller').send(event)
通知控制器、路由等进入调用google分析代码的函数。

我正忙着回答其他问题,刚刚回到这个问题,但您已经提供了一个完美的答案Darshan:)感谢您回答这个问题,Darshan。我觉得我可能没有把问题说清楚,我试图解决的是避免在
click:function(event){console.log('ApplicationView.click',event);}
手动调用google analytics登录。如果我们可以使用action helper为我们做这件事,那就太好了。@Tracy此单击处理程序是一个处理程序,您可以通过
ApplicationView
设置它来捕获全局应用程序的单击。这避免了向每个操作处理程序添加自定义分析代码,因为事件会自行冒泡。还是我遗漏了什么?我正忙着回答其他问题,刚回到这个问题,但你已经提供了一个完美的答案Darshan:)谢谢你回答这个问题,Darshan。我觉得我可能没有把问题说清楚,我试图解决的是避免在
click:function(event){console.log('ApplicationView.click',event);}
手动调用google analytics登录。如果我们可以使用action helper为我们做这件事,那就太好了。@Tracy此单击处理程序是一个处理程序,您可以通过
ApplicationView
设置它来捕获全局应用程序的单击。这避免了向每个操作处理程序添加自定义分析代码,因为事件会自行冒泡。还是我遗漏了什么?