在我的 angular-js 应用程序中,我想跟踪每个用户如何使用它。因此,最初我在客户端上构建一个日志机制,以跟踪用户单击的内容,然后将数据发送到我的服务器上。
这里的主要问题是我想记录我的应用程序中的所有 ng-click 事件。是否可以集中执行此操作,而不必转到每个功能并添加我的功能?
最终我想在日志消息中包含被单击的 div 的 id。
最佳答案
使用指令和服务,如下所示:
app.directive('logClickEvent', function(Logger) {
return {
restrict: 'A',
link: function (scope, element, attrs) {
element.bind('click', function(event) {
Logger.logEvent(event);
});
}
}
})
app.factory('Logger', function () {
return {
logEvent: function(event) {
// implement your logger logic here
}
};
});
然后将指令放置在您要记录的所有元素上:
<button id="button1" log-click-event>button1</button>
jsFiddle:http://jsfiddle.net/bmleite/7wBsv/
选项#2:“覆盖”ng-click
:http://jsfiddle.net/bmleite/7wBsv/2/
关于集中记录 ng-click,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14395128/