如何确定ons-modal显示的状态?

Pad*_*ite 8 onsen-ui

当应用程序获取某些数据时,我正在使用ons-modal来显示加载文本和微调器图标.代码如下:

<ons-modal var="loadingModal">
  <ons-icon icon="ion-load-c" spin="true"></ons-icon>
  <br><br>
  Cargando...
  <br>
</ons-modal>
Run Code Online (Sandbox Code Playgroud)

我可以正确显示隐藏它使用loadingModal.show();loadingModal.hide();

但是我怎么知道它在Angular中是显示还是隐藏?

Dhi*_*raj 5

更新

显然,我不那么优雅的解决方案毕竟不是那么优雅:D

这是一个拉取请求,显示isShown()我猜的应该可用的方法

在内部,该函数看起来与此答案中的内容类似

isShown() {
  return this.style.display !== 'none';
}
Run Code Online (Sandbox Code Playgroud)

不是超级优雅的解决方案,但它的工作原理

if( $scope.loadingModal._element.css('display') == 'none'){
  // hidden now
}else{
  // visible now
}
Run Code Online (Sandbox Code Playgroud)

<!doctype html>
<html lang="en" ng-app="myApp">
  <head>
    <meta charset="utf-8">
    <title>Modal | Onsen UI</title>
    <link rel="stylesheet" href="https://rawgit.com/OnsenUI/OnsenUI/master/demo/styles/app.css"/>
    <link rel="stylesheet" href="https://rawgit.com/OnsenUI/OnsenUI/master/build/css/onsenui.css">
    <link rel="stylesheet" href="https://rawgit.com/OnsenUI/OnsenUI/master/build/css/onsen-css-components.css">

    <script src="https://rawgit.com/OnsenUI/OnsenUI/master/build/js/angular/angular.js"></script>
    <script src="https://rawgit.com/OnsenUI/OnsenUI/master/build/js/onsenui.js"></script>
    <script src="https://rawgit.com/OnsenUI/OnsenUI/master/demo/app.js"></script>
    <script>
      function check($el){
        return $el.css('display') === 'none' ? 'hidden' : 'visible';
      }
      angular.module('myApp').controller('PageController', function($scope) {
        $scope.open = function() {
          $scope.app.modal.show();
          alert(check($scope.app.modal._element));
          setTimeout(function() {
            $scope.app.modal.hide();
            alert(check($scope.app.modal._element));
          }, 2000);
        };
      });
    </script>
  </head>

  <body ng-controller="PageController">

    <ons-navigator>

      <ons-modal var="app.modal">
        <ons-icon icon="ion-load-c" spin="true"></ons-icon>
        <br><br>
        Cargando...
        <br>
      </ons-modal>

      <ons-toolbar>
        <div class="center">Modal</div>
      </ons-toolbar>

      <p style="text-align: center">
        <ons-button modifier="light" ng-click="open();">Open Modal</ons-button>
      </p>

    </ons-navigator>

  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

  • 我认为这是脏的东西,但仍然,它工作得很好:).如果没有其他更优雅的解决方案,那么我会接受这个.谢谢Dhiraj! (2认同)