【问题标题】:Ionic, hide and show element from side menu侧边菜单中的离子,隐藏和显示元素
【发布时间】:2016-02-06 16:01:02
【问题描述】:

我是 Ionic 的新手。我需要帮助来隐藏侧面菜单中的元素。例如我的 HTML 标记:

<ion-side-menus enable-menu-with-back-views="false">
  <ion-side-menu-content>
    <ion-nav-bar class="bar-stable">
      <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-stable">
      <h1 class="title">Menü</h1>
    </ion-header-bar>
    <ion-content>
      <ion-list>
        <ion-item menu-close ng-click="login()">
          Login
        </ion-item>
        <div ng-show="myValue">
        <ion-item id="idsuchen"  menu-close href="#/app/suche">
          Suchen
        </ion-item>
        </div>
      </ion-list>
    </ion-content>
  </ion-side-menu>
</ion-side-menus>

我试图隐藏和显示离子项目。

我的控制器(javascript)代码:

angular.module('starter.controllers', ['ngCordova'])

.controller('AppCtrl', function($scope, $ionicModal, $timeout,$ionicSideMenuDelegate) {


  // Form data for the login modal
  $scope.loginData = {};

  // Create the login modal that we will use later
  $ionicModal.fromTemplateUrl('templates/login.html', {
    scope: $scope
  }).then(function(modal) {
    $scope.modal = modal;
  });

  // Triggered in the login modal to close it
  $scope.closeLogin = function() {
    $scope.modal.hide();

  };

  // This is the important part.
   $scope.logout = function() {   
       alert("logout");
        $ionicSideMenuDelegate.scope.myValue = false; // What i have add

   };


  // Perform the login action when the user submits the login form
  $scope.doLogin = function() {
    console.log('Doing login', $scope.loginData);

    $timeout(function() {
      $scope.closeLogin();
    }, 1000);
  };
})// Ende

我试图做这样的事情。如果我单击“注销”按钮,离子元素将隐藏。但这不起作用。

我试过的语法:

$ionicSideMenuDelegate.scope.myValue = false;
$ionicSideMenuDelegate.scope.myValue = true;
$scope.myValue = true;
$scope.myValue = false;

它通过使用hide $('#idabmelden').hidde(); 与 jQuery 一起工作,但如果我隐藏一次,我将无法再次显示它。这真的很奇怪。

提前致谢

【问题讨论】:

    标签: javascript html angularjs ionic-framework


    【解决方案1】:

    上面的代码有点难以导航,但基本上你想做这样的事情:

    在 html 中:

    <a ng-click="toggleSomething()">ClickMe</a>
    <div ng-show="isVisible"><h1>TOGGLE ME</h1></div>
    

    js: 在初始化块中:

    // initial state is visible
    var initial_state = true;
    $scope.isVisible = initial_state;
    

    js - 切换/点击功能

    // toggle value 
    $scope.toggleSomething = function(){
      $scope.isVisible = !$scope.isVisible;
      console.log('make sure toggleSomething() is firing*');
    }
    

    【讨论】:

    • 好的,谢谢,但我有一个小问题。为什么我需要做 $scope.isVisible = !$scope.isVisible;而不是这个 $scope.isVisible = false;?如果我想让它再次显示我需要这样做 $scope.isVisible = !$scope.isVisible;阿甘?所以,我不能像布尔值一样处理它。是否有可能询问元素是真还是假?
    • 您绝对可以明确地分配变量。上面显示的方法只是假设切换适合您的用例的示例。
    猜你喜欢
    • 2018-01-24
    • 1970-01-01
    • 1970-01-01
    • 2021-10-30
    • 1970-01-01
    • 2014-10-14
    • 2017-07-13
    • 2017-12-01
    • 1970-01-01
    相关资源
    最近更新 更多