【问题标题】:Angular-material, $mdDialog角材料,$mdDialog
【发布时间】:2015-11-02 14:21:28
【问题描述】:

从另一个 mddialog 调用时未关闭 mddialog。

是html:

<some-auth>
  <md-button  ng-click="showSign('', $event)" flex-sm="100" flex-md="100" 
  flex-gt-md="auto">Sign In</md-button>
</some-auth>

在控制器中:

$scope.showSign = function(typeUrl, ev) {
    $mdDialog.hide().then(function(){
      var templateUrl = 'login.html';
      if (typeUrl.indexOf('signup') > -1) {
        templateUrl = 'register.html';
      } else if (typeUrl.indexOf('resetpasswd') > -1) {
        templateUrl = 'resetpasswd.html';
      }

      $mdDialog.show({
        controller: DialogController,
        templateUrl: templateUrl,
        parent: angular.element(document.body),
        targetEvent: ev,
        scope: $scope,
        preserveScope: true
        clickOutsideToClose:true
      });
    });
  };

  function DialogController($scope, $mdDialog) {
    $scope.hide = function() {
      $mdDialog.hide();
    };
    $scope.cancel = function() {
      $mdDialog.cancel();
    };
    $scope.answer = function(answer) {
      $mdDialog.hide(answer);

    };
  }

“dialog_0”显示/隐藏,但“dialog_1”(从“dialog_0”调用)没有关闭任何内容。

在 resetpasswd.html 中有些类似:

<md-dialog aria-label="Resetpasswd" ng-cloak>
  <form name="resetForm" ng-controller="ResetController" ng-submit="reset()">
    <md-toolbar>
      <div class="md-toolbar-tools">
        <h2>Reset Password</h2>
        <md-button type="button" class="md-icon-button" ng-click="cancel()">
          <md-icon md-font-library="material-icons" aria-label="Close   dialog">close</md-icon>
        </md-button>
      </div>
    </md-toolbar>
    <md-dialog-content style="max-width:800px;max-height:810px; ">
      <div class="md-dialog-content">
        ...
      </div>
      <div class="md-actions" layout="row">
        <div class="modal-footer">
          <md-button type="submit">Reset Password</md-button>
          <md-button type="button" ng-click="showSign('', $event)" flex-sm="100" flex-md="100" flex-gt-md="auto">Login
          </md-button>
        </div>
      </div>
    </md-dialog-content>
  </form>
</md-dialog>

Login.html 看起来很相似

【问题讨论】:

    标签: angularjs angular-material


    【解决方案1】:

    尝试选项

    skipHide: 真

    $mdDialog.show({
            skipHide: true,
            controller: DialogController,
            templateUrl: templateUrl,
            parent: angular.element(document.body),
            targetEvent: ev,
            scope: $scope,
            preserveScope: true
            clickOutsideToClose:true
          });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-08-11
      • 1970-01-01
      • 2016-11-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-18
      相关资源
      最近更新 更多