想在移动设备上点击后退按钮时转到主页?

时间:2015-08-05 10:32:28

标签: javascript android angularjs ionic-framework ionic

我正在开发离子框架上的移动应用程序。它有一个带子类别的侧边菜单。每当我不止一次进入子类别并单击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>

1 个答案:

答案 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"
    }
  }
})