Angular 角度材质md在“md”对话框中选择“不关闭”

Angular 角度材质md在“md”对话框中选择“不关闭”,angular,angular-material,mddialog,md-select,Angular,Angular Material,Mddialog,Md Select,我使用的是angular material 1.1.4版、angular 1.5.9版,我在md select指令中遇到了以下问题 我只需单击一个按钮,就可以使用$mdDialog服务打开一个对话框。该对话框是全屏的。在内部,我有多个输入,以及一个md select输入。在md select上,您可以选择多个项目,因此从列表中选择一个项目后,它不会自动关闭。打开它并选择所需的项目后,您可以在其外部单击以关闭它并进入下一个输入,但在mdDialog窗口内部使用时,其外部的单击事件不会关闭md se

我使用的是angular material 1.1.4版、angular 1.5.9版,我在md select指令中遇到了以下问题

我只需单击一个按钮,就可以使用$mdDialog服务打开一个对话框。该对话框是全屏的。在内部,我有多个输入,以及一个md select输入。在md select上,您可以选择多个项目,因此从列表中选择一个项目后,它不会自动关闭。打开它并选择所需的项目后,您可以在其外部单击以关闭它并进入下一个输入,但在mdDialog窗口内部使用时,其外部的单击事件不会关闭md select

我搜索了这个问题,发现了一些问题,但其中一些问题在几个月内没有答案,其他问题也没有解决方案


非常感谢您抽出时间,希望您能以一种干净的方式帮助我做到这一点。或者,我必须手动添加click事件,这是我希望避免的。

我是如何解决问题的:

var dialogContainer = angular.element(document.querySelector('.bara-cautare-directive-root')),
        mdSelects = document.getElementsByTagName('md-select');

    dialogContainer.bind('click', function (event) {
        var closeMdSelect = true;

        _.forEach(mdSelects, function (mdSelect) {
            mdSelect = angular.element(mdSelect);
           // what I do here is to check if the click event was triggered by the md-select I want to close. When opening the md-select, it will automatically close it, so I make sure that whenever this md-select is clicked, I don't hide it.
            if (mdSelect.is(event.target) || mdSelect.has(event.target).length != 0) {
                closeMdSelect = false;

                return false;
            }
        });

        if (closeMdSelect) {
            $mdSelect.hide();
        }
    });
信用给用户。请参阅以下网址的答案:

该问题可以通过覆盖
md-background
zindex
来解决。只需添加以下css

.md-select-menu-container {
    z-index: 900; }

md-backdrop.md-select-backdrop {
    z-index: 899; }

你找到解决办法了吗?我也有同样的问题,我找到了解决办法。这不是最漂亮的,但它很管用。您可以做的是在md-select(您希望用户单击以关闭md-select)之外获取click事件,并使用$mdSelect服务将其隐藏($mdSelect.hide())