虽然ionic已经出来很长一段时间了,但网上的资料依然很少,最近项目中有个很简单的功能要实现,就是返回上个页面,看了一些例子,但都不理想,最简单的一个方法是通过$ionicHistory.goBack();的方法来返回上一页,但用下来发现会有问题,常常挑错页面,于是自己研究了一个方法,效果还不错,和大家分享一下。
1.首先是页面,在头上加个返回按钮,代码如下
<ion-view>
<ion-nav-title>
</ion-nav-title>
<ion-nav-buttons side="left">
<button class="button button-icon icon ion-ios-arrow-back" ng-click="goBack()"></button>
</ion-nav-buttons>
<ion-content>
</ion-content>
</ion-view>
2.增加一个$cacheFactory用来保存url地址
.factory('pageCache',function($cacheFactory){
return $cacheFactory('page');
})
3.写一个保存url的方法,再写一个跳转页面的方法
.factory('commonFactory',function(pageCache,$location){
return{
backUrl:function(url){
pageCache.put('url',url);//这个用来保存页面
},
goBack:function(){
$location.path(pageCache.get('url'));//这个用来跳转页面
}
}
})
4.第一个页面的controller在页面加载的时候就把当前的url保存下来
.controller('carController', function ($scope,$location,commonFactory) {
$scope.$on('$ionicView.beforeEnter',function(){
commonFactory.backUrl($location.url());//保存当前页面的url
})
})
5.第二个页面,要返回的时候只要调用goBack()方法就可以了
.controller('mapController', function ($scope,commonFactory) {
$scope.goBack=function(){
commonFactory.goBack();
};
})
这里只提供一个思路,懂ionic和angularjs的人一看就懂,初学者的话,先看看angularjs的基本语法,有不懂的可以回帖提问。