如何使用$ ionicHistory.viewhistory获取以前的URL?

时间:2015-07-01 13:51:26

标签: angularjs url ionic-framework matomo

我想跟踪用户之前的页面而不是当前页面。 我试图使用$ionicHistory.viewHistory(),但我可以设法得到它。我是angularjs和$ ionic的新手,所以我想这是一个新手问题。

这一切都是为了使用Piwik对单页网页应用进行漏斗分析,但由于它没有合适的漏斗插件(感谢Piwik),我必须自己实施。因此,如果您对该主题有任何建议,那么很高兴收到您的来信。

3 个答案:

答案 0 :(得分:11)

所以你要找的是$ ionicHistory.backView()或$ ionicHistory.backTitle()。如果您正在使用角度状态和路由和视图。

所以在控制器中你会打电话:

$scope.lastView = $ionicHistory.backView() 

这给出了你所在的最后一个视图。所以如果你从A到B,它会给你A。

如果你想要最后一个视图的标题在控制器中调用它:

$scope.lastViewTitle = $ionicHistory.backTitle()

这会给你一个字符串,这是你给前一个视图的标题。如果您在离开此视图后调用了backTitle(),则会返回“我的页面”。

<ion-view view-title="My Page">
    <ion-content>
      Hello!
    </ion-content>
  </ion-view>

您可以在这里阅读更多内容: http://ionicframework.com/docs/api/service/$ionicHistory/

如果您不想要观看但是要说明,那么您应该能够在广播的$ stateChangeSuccess上获取先前的状态。

$rootScope.$on('$stateChangeSuccess', function (ev, to, toParams, from, fromParams) {
   //assign the "from" parameter to something
});

答案 1 :(得分:2)

var history = $ionicHistory.backView();//returns an object with data about the previous screen. console.log(history) to see the entire data.

var previous_statename = history.stateName;//compare this
var previous_url = history.url;
var previous_title = history.title;

答案 2 :(得分:0)

使用:

$ionicHistory.backView().stateName

将具有此值:

app.tab.contacts