离子导航后退按钮和菜单按钮一起显示

时间:2015-01-12 15:43:43

标签: menu navigation ionic-framework back-button ionic

我尝试在显示后退按钮时不显示菜单按钮。有没有办法让Ionic照顾它?或者它取决于我?

例如,如果我使用ui-sref从app.users转到app.users.add或app.users.details我希望隐藏菜单按钮并显示后退按钮,但是他们需要两者都显示我何时进入嵌套视图。例如:

<button class="button button-positive" ui-sref="app.users.details({id:user.id})"> User details </button>

app.js

.config(function($stateProvider, $urlRouterProvider) {
$stateProvider

  .state('app', {
    url: '/app',
    abstract: true,
    templateUrl: 'templates/menu.html'
    //controller: 'AppCtrl'
  })

  .state('app.users', {
    url: '/users',

    views: {
      'menuContent@app' : {
        controller: 'UsersCtrl',
        templateUrl: 'templates/users.html'
      }
    }
  })

  .state('app.users.add', {
    url: '/addUsers',

    views: {
      'menuContent@app' : {
        controller: 'AddUserCtrl',
        templateUrl: 'templates/add_user.html'
      }
    }
  })

  .state('app.users.details', {
    url: '/userDetails/:id',

    views: {
      'menuContent@app' : {
        controller: 'UserDetailsCtrl',
        templateUrl: 'templates/details_user.html'
      }
    }
  })
}

menu.html

<ion-side-menus>
  <ion-pane ion-side-menu-content>
    <ion-nav-bar class="bar-stable">
      <ion-nav-back-button class="button-clear">
        <i class="icon ion-ios7-arrow-forward"></i> back
      </ion-nav-back-button>
    </ion-nav-bar>
    <ion-nav-view name="menuContent" animation="slide-right-left"></ion-nav-view>
  </ion-pane>

  <ion-side-menu side="right">
    <header class="bar bar-header bar-stable">
      <h1 class="title">Title</h1>
    </header>
    <ion-content class="has-header">
      <ion-list>

        <ion-item nav-clear menu-close ui-sref="app.users">
          Users
        </ion-item>

        <ion-item nav-clear menu-close ui-sref="app.users.add">
          New user
        </ion-item>

      </ion-list>
    </ion-content>
  </ion-side-menu>
</ion-side-menus>

我的观点结构是这样的:

<ion-view title="Title">

  <ion-nav-buttons side="right">
    <button menu-toggle="right"class="button button-icon icon ion-navicon"></button>
  </ion-nav-buttons>

  <ion-content class="has-header">
    ...
      View Content
    ...
  </ion-content>
</ion-view>

4 个答案:

答案 0 :(得分:16)

这是由离子默认现在在beta 14中完成的。您也可以通过此属性进行切换。

<ion-side-menus enable-menu-with-back-views="false">

Relative Codepen Sidemenu Starter Project Sidemenu Docs

答案 1 :(得分:4)

也可以在子模板中添加ion-side-menus指令,从子页面覆盖它:

<ion-side-menus enable-menu-with-back-views="true"></ion-side-menus>
<ion-view view-title="My Child page">
    <ion-content>
        <h1>HEY</h1>
    </ion-content>
</ion-view>

这将在您的子页面中添加完整的导航栏(离子导航栏),该导航栏已添加到menu.html模板中(根据上面的示例)

答案 2 :(得分:1)

将带有菜单按钮的导航栏放在您需要菜单按钮的html页面上,并在需要后退按钮的页面上放置带有后退按钮的导航栏。

像这样我需要主菜单上的菜单,所以将导航栏放在主页上,并带有菜单按钮

<ion-view title="home">
  <ion-nav-bar class="bar-stable main-header-nav home-page">
    <ion-nav-buttons side="left">
      <button class="button button-icon button-clear ion-navicon" menu- toggle="left"></button>
    </ion-nav-buttons>
  </ion-nav-bar>
  <ion-content></ion-content>
</ion-view>

我需要收件箱页面上的后退按钮,所以在收件箱页面上使用带有后退按钮的导航栏

 <ion-view title="">
  <ion-nav-bar class="bar-stable main-header-nav home-page">
    <ion-nav-back-button class="button-clear go-back">
      </ion-nav-back-button>
  </ion-nav-bar>
  <ion-content></ion-content>
</ion-view>

答案 3 :(得分:0)

我在2019年解决了将属性“ menuToggle” 添加到Button中的问题。这告诉Ionic / Angular该按钮​​的功能是充当“ Hamburguer Button”,因此,当显示“ Back Arrow Button”时,Angular会理解并隐藏它。

<button menuToggle ion-button icon-only (click)="btnHamburger()">
   <ion-icon name="menu"></ion-icon>
</button>