如何使用 $ionicHistory.viewhistory 获取前一个 url?

How can I get the previous url using $ionicHistory.viewhistory?

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

这整件事的目的是使用 Piwik 对单页 Web 应用程序进行漏斗分析,但由于它没有合适的漏斗插件(感谢 Piwik),我将不得不自己实现它。因此,如果您对这个主题有任何建议,很高兴收到您的来信。

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

所以在控制器中你会调用:

$scope.lastView = $ionicHistory.backView() 

这给出了您所在的最后一个视图。因此,如果您从 A 转到 B,它将为您提供 A。

如果您想要最后一个视图的标题,请在控制器中调用此方法:

$scope.lastViewTitle = $ionicHistory.backTitle()

这会为您提供一个字符串,即您为上一个视图提供的任何标题。如果您在离开此视图后调用 backTitle(),这将是 return "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
});
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;

使用:

$ionicHistory.backView().stateName

将具有以下值:

app.tab.contacts