Angularjs “材质角度预定义”对话框“关闭”按钮不工作
我从一些来源尝试了很多方法,但仍然无法解决material angularjs预定义html对话框的关闭按钮问题。当我按下对话框的外部区域时,它可以正常关闭 我使用的错误消息是取消未定义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
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
事件
解决方案
您必须将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。