【问题标题】:material angular predefined dialog close button not working材料角度预定义对话框关闭按钮不起作用
【发布时间】:2016-12-27 13:13:49
【问题描述】:

我从一些来源尝试了很多方法,但仍然无法解决material angularjs的预定义html对话框的关闭按钮的问题。当我按下对话框的外部区域时,它可以正常关闭。

我使用Batarang Angular 得到的错误消息是cancel is undefined

var app = angular.module('MyApp', ['ngMaterial', 'ngMessages', 'material.svgAssetsCache'])

app.controller('AppCtrl', function($scope, $mdDialog) {
  $scope.showTermUseDialog = function(ev) {
    $mdDialog.show({
      controller: DialogController,
      contentElement: '#termUseDialog',
      parent: angular.element(document.body),
      targetEvent: ev,
      clickOutsideToClose: true,
      scope: $scope,
      preserveScope: true
    });
  };

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

    $scope.cancel = function() {
      $mdDialog.cancel();
    };
  }



});

完整代码可以在这里查看:
http://codepen.io/skylee91/pen/xRoLXo

注意:

如果角度材质版本为 1.1.0,则代码按预期运行。但目前我使用的是最新的稳定版本 1.1.1,关闭按钮不会触发 ng-click 事件。

解决方案

  1. 目前没有针对 1.1.1 版稳定版的解决方案,因为“预渲染的对话框不会链接到任何范围,也不会实例化新的控制器。”
  2. 目前我使用角模板对话框来解决这个问题。

【问题讨论】:

  • 您必须将范围和保留范围添加到 showTermUseDialog ` $scope.showTermUseDialog = function(ev) { $mdDialog.show({ scope: $scope, controller: DialogController, contentElement: '#termUseDialog' , targetEvent: ev, controllerAs: 'dialog', clickOutsideToClose: true, preserveScope: true }); };`
  • "预渲染对话框不会链接到任何范围,也不会实例化新控制器。" github.com/angular/material/issues/10184#issuecomment-269390999

标签: angularjs modal-dialog angular-material


【解决方案1】:

您必须将范围和保留范围添加到 showTermUseDialog $scope.showTermUseDialog = function(ev) { $mdDialog.show({ controller: DialogController, contentElement: '#termUseDialog', parent: angular.element(document.body), targetEvent: ev, clickOutsideToClose: true, scope: $scope, preserveScope: true }); };

并且还在html中添加一个close调用; ng-click="close()"

请在此处查看 plnkr:http://plnkr.co/edit/c1tCfQVMcyj7ZtKRiTOa?p=preview

【讨论】:

  • 我尝试在我的 codepen 上使用您的代码。关闭按钮仍然不起作用。我注意到您指的是 1.1.0 版本的角材料。如果我将版本更改为 1.1.1,它仍然无法关闭。但是,关闭按钮适用于版本 1.1.0。好奇怪!!!
  • 是的,你是对的。在 1.1.1 版本中,它会默默地失败,这可能是因为这个变化。我可能会在那里提交一个错误。 github.com/angular/material/pull/9303
猜你喜欢
  • 2018-11-14
  • 2022-11-02
  • 2020-01-09
  • 1970-01-01
  • 2023-03-10
  • 1970-01-01
  • 1970-01-01
  • 2021-03-25
  • 2019-10-30
相关资源
最近更新 更多