关闭“角度材质”对话框

时间:2016-11-22 04:23:01

标签: javascript html css angularjs angular-material

从控制器调用$ 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>

4 个答案:

答案 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)

您可以将范围绑定到对话框配置中:

&#13;
&#13;
$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;
&#13;
&#13;

有关配置属性的更多信息,您可以在here

中看到对话框配置文档