离子状态会阻止显示侧面菜单

时间:2015-08-12 11:03:47

标签: ionic-framework angular-ui-router ionic ionic-view

我正在使用Ionic中的示例中的幻灯片菜单。 当我从任何页面(使用$ location或$ state.go)重定向到主页时,菜单被禁用。 它不能再显示了。

$state.go('app.home');
$location.path('/#/app/home');

知道发生了什么事吗?

这是菜单模板

<ion-side-menus>

    <ion-side-menu-content drag-content="true">
        <ion-nav-bar class="bar-dark">
            <ion-nav-back-button>
            </ion-nav-back-button>

            <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-nav-view name="menuContent"></ion-nav-view>
    </ion-side-menu-content>

    <ion-side-menu side="left">
        <ion-header-bar class="bar-light">
        <h1 class="title">Title</h1>
        </ion-header-bar>
        <ion-content>
            <ion-list>
                <ion-item menu-close href="#/app/login">
                    Login
                </ion-item>
                <ion-item menu-close href="#/app/account">
                    Account
                </ion-item>
                <ion-item menu-close href="#/app/logout">
                    Logout
                </ion-item>
            </ion-list>
        </ion-content>
    </ion-side-menu>

</ion-side-menus>

这是应用程序的配置

$stateProvider

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

        .state('app.home', {
            url: "/home",
            views: {
                'menuContent@app': {
                    templateUrl: "modules/home/views/home.html",
                    controller: 'HomeCtrl'
                }
            }
        });

$urlRouterProvider.otherwise('/app/home');

2 个答案:

答案 0 :(得分:8)

在这里回答ionic slide menu don't appear when i use state.go in my controller

我忘了在enable-menu-with-back-views="true"

上使用<ion-side-menus>选项

答案 1 :(得分:0)

    .state('login', {
      url: "/login",
      templateUrl: "templates/login.html",
      controller: 'AppCtrl'
    })

    .state('app', {
      url: "/app",
      abstract: true,
      templateUrl: "templates/menu.html",
      controller: 'AppCtrl',
      onEnter: function($state, Auth) {
        if (!Auth.isLoggedIn()) {
          $state.go('login');
        }
      }
    })

   .state('app.Propertylist', {
      url: "/Propertylist",
      views: {
        'menuContent': {
          templateUrl: "templates/Propertylist.html",
          controller: 'PropertyCtrl',
          onEnter: function($state, Auth) {
            if (!Auth.isLoggedIn()) {
              $state.go('login');
            }
          }
        }
      }
    })`enter code here`