如何使用$ionicHistory.viewhistory获取上一个URL?

4
我希望能够追踪用户当前页面之前所在的页面。我尝试使用$ionicHistory.viewHistory(),但是没有成功获取它。我对angularjs和$ionic都很陌生,所以我想这是一个初学者问题。
整个目的是为了使用Piwik对单页Web应用程序进行漏斗分析,但由于它没有适当的漏斗插件(感谢Piwik),因此我必须自己实现。所以,如果您对该主题有任何建议,那么听取您的意见将是很棒的。
3个回答

12

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

因此,在控制器中,您需要调用:

$scope.lastView = $ionicHistory.backView() 

这将给出您最后所在的视图。因此,如果您从 A 到 B,它将给出 A。

如果您想要上一个视图的标题,请在控制器中调用此函数:

$scope.lastViewTitle = $ionicHistory.backTitle()

这会给你一个字符串,也就是你在之前那个视图中设置的标题。如果你在离开该视图后调用backTitle(),它将返回"My Page"。

<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
});

运行得很好!谢谢,你的回答比Ionic文档更清晰!谢谢。 - Diego Aguado

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;

0

使用:

$ionicHistory.backView().stateName

它将具有这个值:

app.tab.contacts

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接