<h1>{{header}}</h1>
<!-- This Back button has multiple option -->
<!-- In home page it will show menu -->
<!-- In other views it will show back link -->
<a ng-href="{{back.url}}">{{back.text}}</a>
<div ng-view></div>
在我的模块配置中
$routeProvider.
when('/', {
controller:HomeCtrl,
templateUrl:'home.html'
}).
when('/menu', {
controller:MenuCtrl,
templateUrl:'menu.html'
}).
when('/items', {
controller:ItemsCtrl,
templateUrl:'items.html'
}).
otherwise({
redirectto:'/'
});
控制器
function HomeCtrl($scope, $rootScope){
$rootScope.header = "Home";
$rootScope.back = {url:'#/menu', text:'Menu'};
}
function MenuCtrl($scope, $rootScope){
$rootScope.header = "Menu";
$rootScope.back = {url:'#/', text:'Back'};
}
function ItemsCtrl($scope, $rootScope){
$rootScope.header = "Items";
$rootScope.back = {url:'#/', text:'Back'};
}
正如您在我的控制器中看到的那样,我已经硬编码了后退按钮 url 和文本(实际上我不需要文本作为使用图像)。通过这种方式,我发现在某些情况下后退按钮导航不正确。我不能使用history.back()
我的后退按钮更改为主页视图中的菜单链接。
所以我的问题是如何在控制器中获取先前的路由路径,或者是更好的方法来实现这一点?
我创建了一个Plunker演示我的问题。请检查一下。