【发布时间】:2020-01-06 11:05:33
【问题描述】:
我的应用程序中有 3 个打开的 mdDialogs(未嵌套在控制器中),其中 2 个将键“multiple”设置为 true,因此它们不会相互关闭。当我在其中一个调用 mdDialog.close() 或 mdDialog.hide() 时,两个子对话框都会隐藏。有没有办法一一关闭它们? [关闭]
【问题讨论】:
标签: javascript angularjs angularjs-material mddialog
我的应用程序中有 3 个打开的 mdDialogs(未嵌套在控制器中),其中 2 个将键“multiple”设置为 true,因此它们不会相互关闭。当我在其中一个调用 mdDialog.close() 或 mdDialog.hide() 时,两个子对话框都会隐藏。有没有办法一一关闭它们? [关闭]
【问题讨论】:
标签: javascript angularjs angularjs-material mddialog
查看“自定义预设”部分和下面的https://material.angularjs.org/latest/api/service/$mdDialog。您需要通过调用创建实例对象
myPrompt = $mdDialog.prompt();
或
myPrompt = $mdDialog.confirm();
或创建自定义预设,然后在显示或关闭时使用该实例:
$mdDialog.show(myPrompt);
$mdDialog.close(myPrompt);
这是页面中的一个部分:
// Dialog #1 - Show simple alert dialog and cache
// reference to dialog instance
function showAlert() {
alert = $mdDialog.alert()
.title('Attention, ' + $scope.userName)
.textContent('This is an example of how easy dialogs can be!')
.ok('Close');
$mdDialog
.show( alert )
.finally(function() {
alert = undefined;
});
}
【讨论】:
$mdDialog.show({
templateUrl: 'dialog.html',
controller: 'DialogCtrl',
skipHide:true
})
这对我有用。我正在使用 angularjs-material 1.1.0-rc5
【讨论】:
实际上这是一个愚蠢的错误,伙计们。如果我们只运行 $mdDialog.hide(),那么对于每个孩子都将“multiple”设置为 true 的堆叠对话框就足够了。在我的问题上,问题是我错误地调用了隐藏功能,因此我关闭了两个对话框。我不好的不必要的问题,但它可能对新人有用。
【讨论】: