Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs “材质角度预定义”对话框“关闭”按钮不工作_Angularjs_Modal Dialog_Angular Material - Fatal编程技术网

Angularjs “材质角度预定义”对话框“关闭”按钮不工作

Angularjs “材质角度预定义”对话框“关闭”按钮不工作,angularjs,modal-dialog,angular-material,Angularjs,Modal Dialog,Angular Material,我从一些来源尝试了很多方法,但仍然无法解决material angularjs预定义html对话框的关闭按钮问题。当我按下对话框的外部区域时,它可以正常关闭 我使用的错误消息是取消未定义 var app = angular.module('MyApp', ['ngMaterial', 'ngMessages', 'material.svgAssetsCache']) app.controller('AppCtrl', function($scope, $mdDialog) { $scope

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

我使用的错误消息是取消未定义

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();
    };
  }



});
可以在此处查看完整代码:


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

解决方案
  • 目前没有1.1.1版稳定版本的解决方案,因为“预呈现对话框不会链接到任何作用域,也不会实例化新控制器。”
  • 目前我使用angular template dialog来解决这个问题

  • 您必须将scope和preservescope添加到showTermUseDialog
    $scope.showTermUseDialog=函数(ev){
    $mdDialog.show({
    控制器:对话框控制器,
    contentElement:“#termUseDialog”,
    父元素:angular.element(document.body),
    目标事件:ev,
    单击外部以关闭:true,
    范围:$scope,
    保存范围:true
    });
    };

    并在html中添加关闭调用
    ng单击“关闭()”


    请参见此处的plnkr:

    您必须将scope和preservescope添加到showTermUseDialog`$scope.showTermUseDialog=function(ev){$mdDialog.show({scope:$scope,controller:DialogController,contentElement:'#termUseDialog',targetEvent:ev,controllerAs:'dialog',clickoutside toclose:true,preserveScope:true};};`“预呈现的对话框将不会链接到任何作用域,也不会实例化新的控制器。”我试图在我的代码笔上使用你的代码。关闭按钮仍然不起作用。我注意到你指的是1.1.0版本的棱角材质。如果我更改为1.1.1版本,它仍然无法关闭。但是,关闭按钮在1.1.0版本下起作用。太奇怪了!!!是的,你是对的。在1.1.1版本中,它会无声地失败,这是错误的可能是因为这个变化。我可能会在那里提交一个bug。