Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs ui路由器获取google analytics状态更改的当前路径_Angularjs_Angular Ui Router - Fatal编程技术网

Angularjs ui路由器获取google analytics状态更改的当前路径

Angularjs ui路由器获取google analytics状态更改的当前路径,angularjs,angular-ui-router,Angularjs,Angular Ui Router,我正在尝试获取发送到谷歌分析的状态路径。有一些问题。我使用的是抽象状态,所以使用toState.url之类的东西不会起作用,因为它不会获取整个url 我曾想过在$stateChangeSuccess上使用$window.location.pathname,但结果是在浏览器中更新url之前触发了成功。这意味着页面浏览发送1次页面浏览太晚。即 click about: sends nothing click contact: sends about url click services: sends

我正在尝试获取发送到谷歌分析的状态路径。有一些问题。我使用的是抽象状态,所以使用toState.url之类的东西不会起作用,因为它不会获取整个url

我曾想过在$stateChangeSuccess上使用$window.location.pathname,但结果是在浏览器中更新url之前触发了成功。这意味着页面浏览发送1次页面浏览太晚。即

click about: sends nothing
click contact: sends about url
click services: sends contact url
基本上,最终结果应该如下所示,但使用toState url或路径名:

$rootScope.$on("$stateChangeStart", function(event, toState, toParams, fromState, fromParams) {
  var path = ???; 
  ga('send', 'pageview', path);
});

看起来您需要使用$location来获取新路径:

$rootScope.$on("$stateChangeSuccess", function(event, toState, toParams, fromState, fromParams) {
  $window.ga('send', 'pageview', $location.path());
});
这不适用于谷歌分析网站管理的“行为”选项卡:(如果你实时看到它,它会工作得很好!但只是在“行为”选项中没有