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>
函数参数是用来解析弹出窗口的值。
在 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>
函数参数是用来解析弹出窗口的值。