我正在尝试使用ionic-framework和angularJS开发一个应用程序。
我使用了$stateProvider和$urlRouterProvider来在视图中导航。我有离子导航后退按钮在页面上,导航到以前的视图在历史。
这是我的路由逻辑
$stateProvider
.state('sideMenu', {
url: "/SideMenu",
abstract: true,
templateUrl: "Templates/SideMenu.html",
controller: 'homeCtrl'
})
.state('sideMenu.relations', {
cache: true,
url: "/Relations/:id",
views: {
'contentView': {
templateUrl: "Templates/Relations.html",
controller: "relationCtrl"
}
}
});
//only required navigation is shown here
$urlRouterProvider.otherwise("/SideMenu/Suggestions");
我的问题是,离子导航-后退按钮工作ok的视图没有参数。但如果我在视图有参数之前,它就不会回到历史视图上。相反,它会进入默认页面。
例如,如果从"relationship .html"视图转到下一个视图,其中有"id"作为参数,在下一个视图中我可以看到后退按钮。但是如果我点击那个按钮,它会把我带到默认页面" recommendations .html"而不是" relationship .html"。
编辑
$ionicHistory.goBack();
使用$ionicHistory返回的代码也不能工作。这意味着带有参数的视图不会被添加到History中。
谁能建议我,我应该怎么做的视图与参数添加到历史?
url参数中只能输入":id"。这样的:
.state('sideMenu.relations', {
cache: true,
url: "/:id",
views: {
'contentView': {
templateUrl: "Templates/Relations.html",
controller: "relationCtrl"
}
}
});
来自文档http://ionicframework.com/docs/api/directive/ionNavBackButton/
自定义内部标记和自定义点击动作,使用$ionicHistory:
<ion-nav-bar ng-controller="MyCtrl">
<ion-nav-back-button class="button-clear"
ng-click="myGoBack()">
<i class="ion-arrow-left-c"></i> Back
</ion-nav-back-button>
</ion-nav-bar>
控制器代码
function MyCtrl($scope, $ionicHistory) {
$scope.myGoBack = function() {
$ionicHistory.goBack();
};
}