通过选项卡按钮打开侧面菜单 [英] Open sidemenu from a tab button

查看:82
本文介绍了通过选项卡按钮打开侧面菜单的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想通过选项卡按钮打开侧面菜单.控制台输出打开菜单",因此我知道正在调用服务方法,但它根本不会打开菜单.我要去哪里错了?

I want to open the sidemenu from a tab button. The console outputs 'open menu' so i know the service method is being called but it will simply not open the menu. Where am i going wrong?

这是我的tabs.html

This is my tabs.html

<ion-tabs class="tabs-super-top tabs-top tabs-icon-left tabs-striped">

    <ion-tab title="More" icon="icon ion-navicon" ng-click="openSideMenu()" >
    </ion-tab>

    <ion-tab title="Events" icon="icon ion-calendar" ui-sref="tab.events">
        <ion-nav-view name="tab-events" class="slide-left-right"  ion-side-menu-content></ion-nav-view>
    </ion-tab>

    <ion-tab title="Involved" icon="icon ion-checkmark-round" ui-sref="tab.involved">
        <ion-nav-view name="tab-involved" class="slide-left-right" ion-side-menu-content></ion-nav-view>
    </ion-tab>

    <ion-tab title="Networks" icon="icon ion-network" ui-sref="tab.networks">
        <ion-nav-view name="tab-networks" class="slide-left-right" ion-side-menu-content></ion-nav-view>
    </ion-tab>


</ion-tabs>

navigation.js模块:

navigation.js module:

angular.module('navigationModule', [])
.controller('SideMenuController', function($scope, sideMenuService) 
{
    $scope.openSideMenu = function()
    {
        sideMenuService.openSideMenu('sideMenu');
    };
})


.service('sideMenuService', function($ionicSideMenuDelegate) {
    return {
        openSideMenu: function(menuhandle) 
        {
            console.log('open menu');
            return $ionicSideMenuDelegate.$getByHandle(menuhandle).toggleLeft();
        }
    }
})

;

我目前在index.html中有我的菜单:

I currently have my sidemenu in index.html:

<ion-side-menus side="left" delegate-handle="sideMenu">

    <!-- Center content -->
    <ion-side-menu-content>
        <ion-list>
            <ion-item nav-clear menu-close ng-click="login()">Login</ion-item>
            <ion-item nav-clear menu-close href="#/app/search">Search</ion-item>
            <ion-item nav-clear menu-close href="#/app/browse">Browse</ion-item>
            <ion-item nav-clear menu-close href="#/app/playlists">Playlists</ion-item>
        </ion-list>
    </ion-side-menu-content>

    <!-- Left menu -->
    <ion-side-menu side="left"></ion-side-menu>

    <!-- Right menu -->
    <ion-side-menu side="right"></ion-side-menu>

</ion-side-menus>

这是我的状态:

$stateProvider

    .state('tab', {
      url: "/tab",
      abstract: true,
      templateUrl: "templates/common/Tabs.html",
      controller: 'SideMenuController'
    })

推荐答案

好,我可以使用拨动开关.

Ok, I got the toggle left to work.

首先,我为侧菜单添加了一个明确的控制器,如下所示:

First I added a explicit controller just for the sidemenus, like this:

<ion-side-menus delegate-handle="sideMenu" ng-controller="SideMenuController">

然后在controllers.js中:

Then in the controllers.js:

.controller('SideMenuController', function($scope, $ionicSideMenuDelegate) 
{
    $scope.openSideMenu = function()
    {
        $ionicSideMenuDelegate.$getByHandle('sideMenu').toggleLeft();
    };
})

并摆脱了sideMenuService.

此处处检查文档.

这篇关于通过选项卡按钮打开侧面菜单的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆