从控制器调用$ mdDialog.cancel()将关闭对话框。但有没有一种方法可以不使用控制器直接从html关闭对话框?我想要这样的东西起作用:
<md-dialog-actions layout="row">
<span flex></span>
<md-button ng-click="$mdDialog.cancel()" style="margin-right:20px;" >
Ok
</md-button>
</md-dialog-actions>
答案 0 :(得分:7)
在show()
代码中,您可以创建子范围并添加close()
函数:
$mdDialog.show({
...
scope: angular.extend($scope.$new(), { close: function() {$mdDialog.cancel();} })
});
然后在对话框的HTML中,使用ng-click="close()"
。
或者,您可以将$mdDialog
对象作为范围的属性传递。
然而,它比创建控制器(也可以在show()
函数内创建)的代码更多。
答案 1 :(得分:0)
简单
<md-button ng-click="cancel()"></md-button>
在对话框控制器中
$scope.cancel = function() {
$mdDialog.cancel();
}
答案 2 :(得分:0)
您可以将mat-dialog-close
添加到要从中触发关闭事件的按钮上
示例:<button mat-dialog-close> Close </button>
答案 3 :(得分:-1)
您可以将范围绑定到对话框配置中:
$mdDialog.show({
targetEvent: $event,
template:
'<md-dialog>' +
' <md-dialog-content>Hello {{ employee }}!</md-dialog-content>' +
' <md-dialog-actions>' +
' <md-button ng-click="closeDialog()" class="md-primary">' +
' Close Greeting' +
' </md-button>' +
' </md-dialog-actions>' +
'</md-dialog>',
scope: $scope,
preserveScope: true
});
&#13;
有关配置属性的更多信息,您可以在here
中看到对话框配置文档