考虑以下情况: web应用程序的每个页面上都有多个(手动引导的) AngularJS应用程序。需要在每个应用程序中添加Web分析跟踪(在本例中为Adobe/Site催化剂)。但是,我希望将分析代码与AngularJS应用程序的其他部分完全分离--能够在一开始就删除它。
做这件事最好的方法是什么?我考虑了以下几点:
发布于 2014-09-08 16:49:04
这就是我要做的:
1)在应用程序的根部定义一个控制器,名为"AnalyticsCatcherController“(或类似的内容),该控制器将负责捕获您想要跟踪的所有事件,如下所示:
  .controller('AnalyticsCatcherController', ['$scope', function($scope) {
    $scope.$on('HitMainLink', function() {
      ...
    });
    $scope.$on('FbSharedClick', function() {
      ...
    });
  }]);然后,您只需从指令的操作中提取 your custom events,如:$emit('FbSharedClick')。
这样,如果您想要删除分析,您只需去掉"AnalyticsCatcherController“。如果您想使用另一个跟踪系统:所有的逻辑将在"AnalyticsCatcherController“中,与应用程序的逻辑完全分离。确实,即使您移除控制器,这些事件仍然会被发出,那又如何?此外,它们不会产生任何真正的性能影响:您可以将这些事件用于其他目的,因此您不必将它们作为分析跟踪系统的一部分。
https://stackoverflow.com/questions/25728629
复制相似问题