虽然ionic已经出来很长一段时间了,但网上的资料依然很少,最近项目中有个很简单的功能要实现,就是返回上个页面,看了一些例子,但都不理想,最简单的一个方法是通过$ionicHistory.goBack();的方法来返回上一页,但用下来发现会有问题,常常挑错页面,于是自己研究了一个方法,效果还不错,和大家分享一下。
<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的方法,再写一个@R_350_404@面的方法
.factory('commonFactory',function(pageCache,$location){ return{ backUrl:function(url){ pageCache.put('url',url);//这个用来保存页面 },goBack:function(){ $location.path(pageCache.get('url'));//这个用来@R_350_404@面 } } })
4.第一个页面的controller在页面加载的时候就把当前的url保存下来
.controller('carController',function ($scope,$location,commonFactory) { $scope.$on('$ionicView.beforeEnter',function(){ commonFactory.backUrl($location.url());//保存当前页面的url }) })
5.第二个页面,要返回的时候只要调用goBack()方法就可以了
.controller('mapController',commonFactory) { $scope.goBack=function(){ commonFactory.goBack(); }; })
这里只提供一个思路,懂ionic和angularjs的人一看就懂,初学者的话,先看看angularjs的基本语法,有不懂的可以回帖提问。