在控制器中关闭 ngDialog
closing ngDialog in controller
我有两个功能,一个用于打开对话框,一个用于将数据发布到服务器然后关闭对话框,问题是我无法关闭对话框,这里是代码
vm.openCreateDialog = function () {
var Dialog = ngDialog.open({
template: 'user/create',
className: 'ngdialog-theme-default'
})
}
vm.createUser = function () {
DataService.createUser(vm.user).then(function (response) {
$log.log('promise returned successfully')
Dialog.close();
}).catch(function (e) {
$log.log('catch registration error')
});
}
在 openCreateDialog
中,您将值赋给 Dialog
变量,但无法从其他任何地方访问它,因为它在 openCreateDialog
的范围内。有关 var
语句如何工作的更多信息,请参见 here。
要解决此问题,Dialog
必须在其他函数内部可见。有多种方法可以做到这一点,但我只是将它放在 vm
上并从那里访问它:
vm.Dialog = ngDialog.open({
// ...
vm.Dialog.close();
ngDialog.open() return 一个带有 id 的对象,id 是对话框的 id,我用它来关闭对话框,这里是工作代码,如果有人来的话
vm.openCreateDialog = function () {
vm.Dialog = ngDialog.open({
template: 'user/create',
className: 'ngdialog-theme-default',
})
vm.dialogId = vm.Dialog.id;
}
在另一个函数中,我只是使用 id 来关闭对话框
ngDialog.close(vm.dialogId)
ngDialog.close() 会起作用。
来自文档:
.close(id, value) Method accepts dialog's id as string argument to
close specific dialog window, if id is not specified it will close all
currently active modals (same behavior as .closeAll()). Takes an
optional value to resolve the dialog promise with (or all dialog
promises).
我有两个功能,一个用于打开对话框,一个用于将数据发布到服务器然后关闭对话框,问题是我无法关闭对话框,这里是代码
vm.openCreateDialog = function () {
var Dialog = ngDialog.open({
template: 'user/create',
className: 'ngdialog-theme-default'
})
}
vm.createUser = function () {
DataService.createUser(vm.user).then(function (response) {
$log.log('promise returned successfully')
Dialog.close();
}).catch(function (e) {
$log.log('catch registration error')
});
}
在 openCreateDialog
中,您将值赋给 Dialog
变量,但无法从其他任何地方访问它,因为它在 openCreateDialog
的范围内。有关 var
语句如何工作的更多信息,请参见 here。
要解决此问题,Dialog
必须在其他函数内部可见。有多种方法可以做到这一点,但我只是将它放在 vm
上并从那里访问它:
vm.Dialog = ngDialog.open({
// ...
vm.Dialog.close();
ngDialog.open() return 一个带有 id 的对象,id 是对话框的 id,我用它来关闭对话框,这里是工作代码,如果有人来的话
vm.openCreateDialog = function () {
vm.Dialog = ngDialog.open({
template: 'user/create',
className: 'ngdialog-theme-default',
})
vm.dialogId = vm.Dialog.id;
}
在另一个函数中,我只是使用 id 来关闭对话框
ngDialog.close(vm.dialogId)
ngDialog.close() 会起作用。
来自文档:
.close(id, value) Method accepts dialog's id as string argument to close specific dialog window, if id is not specified it will close all currently active modals (same behavior as .closeAll()). Takes an optional value to resolve the dialog promise with (or all dialog promises).