我正在开发离子框架上的移动应用程序。它有一个带子类别的侧边菜单。每当我不止一次进入子类别并单击android mobile中的后退按钮时,它会回溯它所经历的我不想要的所有状态。
.state('eventmenu', {
url: "/event",
abstract: true,
templateUrl: "templates/event-menu.html"
})
.state('eventmenu.home', {
url: "/home",
views: {
'menuContent' :{
templateUrl: "templates/home.html",
controller: "HomeCtrl"
}
}
})
.state('categorymenu', {
url: "/category",
abstract: true,
templateUrl: "templates/event-menu.html"
})
.state('categorymenu.compound', {
url: "/compound",
views: {
'menuContent' :{
templateUrl: "templates/categories.html",
controller: "CategoriesCtrl"
}
}
})
.state('categorymenu.research', {
url: "/research",
views: {
'menuContent' :{
templateUrl: "templates/categories.html",
controller: "CategoriesCtrl"
}
}
})
.state('categorymenu.product', {
url: "/product",
views: {
'menuContent' :{
templateUrl: "templates/product.html",
controller: "CategoriesCtrl"
}
}
})
$urlRouterProvider.otherwise("/event/home");
})
我希望后退按钮将用户重定向到主页。这里的 categorymenu.compound 和 categorymenu.research 是sidemenu的内容,它有许多子类别会重定向到 categorymenu.product 页面。< / p>
答案 0 :(得分:0)
在每个控制器加载时重新定义后退按钮功能,您可以使用:$ionicPlatform.registerBackButtonAction(function(){$state.go('targetView')}, priority, [actionId])
但是在重新加载视图时需要清除缓存(每次重新定义后退按钮并且有可能返回SEVERAL)。
您可以在每次重定向中添加参数:
$state.go('targetView',{cache: false});
或在状态描述中添加param
.state('eventmenu.home', {
cache: false
url: "/home",
views: {
'menuContent' :{
templateUrl: "templates/home.html",
controller: "HomeCtrl"
}
}
})