我想跟踪用户之前的页面而不是当前页面。
我试图使用$ionicHistory.viewHistory()
,但我可以设法得到它。我是angularjs和$ ionic的新手,所以我想这是一个新手问题。
这一切都是为了使用Piwik对单页网页应用进行漏斗分析,但由于它没有合适的漏斗插件(感谢Piwik),我必须自己实施。因此,如果您对该主题有任何建议,那么很高兴收到您的来信。
答案 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