ngDialog - 如何从模板关闭对话框(即没有控制器功能)?

ngDialog - how to close dialog from the template (i.e. no controller functions)?

在 ngDialog (https://github.com/likeastore/ngDialog) 上,是否有一种内置的方法可以从它自己的模板中关闭对话框? IE。所以我不需要调用对话框的控制器中的任何函数?

这是我的模板 (errorPopup.html):

<div>
  <div class="alert alert-warning">
    <div class="errorLogo"><i class="icon-exclaim"></i></div>
    <div class="errorContent" data-ng-bind-html="errorMessage"></div>
  </div>
  <div class="buttonWrapper">
    <button type="button" class="btn-primary pull-right">
      <span res="close"></span>
    </button>
  </div>
</div>

这就是我打开对话框的方式:

function showErrorPopup() {
  ngDialog.open({
    template: 'errorPopup.html',
    scope: $scope,
    className: 'ngdialog-theme-default ngdialog-cart-theme',
    showClose: true,
    appendTo: 'div[ui-view]',
    closeByDocument: false
  });
}

因此,当我调用 showErrorPopup() 时,会显示一个对话框,但是,我需要将此 "close" 按钮设置为实际 dismiss/close 弹出窗口。到目前为止,这只是一个没有任何作用的计划按钮。

我可以在模板级别(不更改我的控制器代码)做些什么来使按钮工作吗?

也许我应该使用默认按钮而不是我自己的按钮?如果是,怎么做?

PS:我注意到点击右上角的 X 按钮有效,弹出窗口被关闭。

谢谢大家!

很难说你到底做错了什么,直到你粘贴一些控制器和 app.js 和 HTML 代码内容。 是的,ngDialog 内置了关闭对话框的方法

确保将 className 设置为 'ngdialog-theme-flat ngdialog-theme-custom' 或其他 css class,如 open 函数中的文档所述。

您添加了名称为 "closeThisDialog" 的处理程序,但函数有另一个名称 "closePopup".

可能是你的问题。

只需按照以下步骤操作 1.when 创建应用程序

var app = angular.module('sampleApp', ['ngDialog']);
2.use 这样的按钮

<button ng-click="clickMe()">Click to Open</button>

3.put 这个在你的控制器里

 `$scope.clickMe = function () {
    ngDialog.open();
};`

默认有关闭代码,点击关闭会自动关闭。 希望有用

如果您想直接从视图调用 ngDialog 的关闭函数,您必须将模块本身注入到控制器内的作用域中,以便它在视图中可用:

$scope.ngDialog = ngDialog;

然后,您可以直接在视图中使用它:

<button ng-click="ngDialog.close()">Close</button>

您不必在 $scope 中注入 ngDialog 模块。您可以直接在弹出模板中调用 closeThisDialog() 函数:

<button ng-click="closeThisDialog(0)">Close</button>

函数参数是用来解析弹出窗口的值。