我有两个功能,一个用于打开对话框,一个用于将数据发布到服务器然后关闭对话框,问题是我无法关闭对话框,这里是我们的代码
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')
});
}
答案 0 :(得分:3)
ngDialog.close()将起作用。
来自文件:
.close(id,value)方法接受对话框的id作为字符串参数 关闭特定的对话窗口,如果未指定id,它将关闭所有 当前活动的模态(与.closeAll()相同的行为)。拿一个 用于解析对话框承诺的可选值(或所有对话框 许)。
答案 1 :(得分:0)
在openCreateDialog
中,您为Dialog
变量指定了值,但无法从其他任何位置访问该值,因为它是openCreateDialog
范围的本地值。有关var
语句的工作原理的更多信息,请参见here。
要解决此问题,必须在其他功能内部显示Dialog
。有多种方法可以做到这一点,但我只需将其放在vm
上并从那里访问它:
vm.Dialog = ngDialog.open({
// ...
vm.Dialog.close();
答案 2 :(得分:0)
ngDialog.open()返回一个带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)