首页 文章

在AngularJS中显示/隐藏/切换

提问于
浏览
0

我有2个按钮的导航栏 .

<div class="navbar-header">
    <div class="navbar-header">
         <div id="toggle-menu" ng-click="isShowSideBarMobile = !isShowSideBarMobile"><i class="fa fa-bars fa-3x"></i></div>
         <div id="toggle-function" ng-click="isShowRightContent = !isShowRightContent"><i class="fa fa-ellipsis-v fa-3x"></i></div>
    </div>
</div>

当点击div#toggle-menu时,会显示div#sidebar-mobile-wrapper .

<div id="sidebar-mobile-wrapper" class="container-fluid" ng-show="isShowSideBarMobile"></div>

当我点击div#toggle-function时,会显示div#right-content-mobile .

<div class="container-fluid right-content-mobile" ng-show="isShowRightContent"></div>

这一切都奏效了 . 但现在我想,一次只能显示一个div . 因此,当我点击#切换菜单时,如果div#right-content-mobile可见,它将是隐藏和侧边栏 - 移动 - 包装,否则 .

3 回答

  • 0

    寻找this . 我希望它正是你所需要的 . 实际上,您需要为此任务使用现成的解决方案(例如标签,手风琴,面板) .

    <div class="navbar-header">
          <div class="navbar-header">
               <div id="toggle-menu" ng-click="isShowSideBarMobile = !isShowSideBarMobile;isShowRightContent = false;"><i class="fa fa-bars fa-3x"></i><button>isShowSideBarMobile</button></div>
               <div id="toggle-function" ng-click="isShowRightContent = !isShowRightContent;isShowSideBarMobile = false;"><i class="fa fa-ellipsis-v fa-3x"></i><button>isShowRightContent</button></div>
          </div>
      </div>
      <div id="sidebar-mobile-wrapper" class="container-fluid" ng-show="isShowSideBarMobile && !isShowRightContent">sidebar-mobile-wrapper</div>
      <div id="right-content-mobile" class="container-fluid" ng-show="isShowRightContent && !isShowSideBarMobile">right-content-mobile</div>
    
  • 0

    仅使用 mobileMenuCollapsed 变量:

    <div class="navbar-header">
            <div class="navbar-header">
                 <div id="toggle-menu" ng-click="mobileMenuCollapsed = !mobileMenuCollapsed"><i class="fa fa-bars fa-3x"></i></div>
                 <div id="toggle-function" ng-click="mobileMenuCollapsed = !mobileMenuCollapsed"><i class="fa fa-ellipsis-v fa-3x"></i></div>
            </div>
        </div>
    
    <div id="sidebar-mobile-wrapper" class="container-fluid" ng-show="!mobileMenuCollapsed"></div>
    <div class="container-fluid right-content-mobile" ng-show="mobileMenuCollapsed"></div>
    
  • 0

    将模型值的工作封装到控制器中是非常好的主意,这使您能够轻松地更改行为 .

    您可以使用以下方法:

    <div class="navbar-header">
      <div id="toggle-menu" ng-click="contentToggle('mobile')">Toggle mobile</div>
      <div id="toggle-function" ng-click="contentToggle('right')">Toggle right</div>
    </div>
    
    <div ng-show="isContentToggled('mobile')">
      <strong>Mobile content</strong>
    </div>
    <div ng-show="isContentToggled('right')">
     <strong> Right content</strong>
    </div>
    

    用控制器方法

    $scope.content = undefined;
    $scope.contentToggle = function(name){
      if ($scope.isContentToggled(name)){
        $scope.content = undefined;
      } else {
        $scope.content = name;
      }
    }
    
    $scope.isContentToggled = function (name){
      return $scope.content == name;
    }
    

    你可以在http://plnkr.co/edit/WoqtP8ZpvPh2r94ITQvf?p=preview看到一个例子

相关问题