md-select仅适用于OS X上的第一次单击

问题描述 投票:10回答:1

我在电子应用程序中使用angularjs(1.x)和angular-material。我在视图中有两个md-selects,当我尝试在Windows中使用它时,一切正常。但是当我在OS X中使用它时,md-select在第一次点击后停止工作。我点击它,它打开项目列表,但如果我再次点击md-select,它不再显示项目列表。值得注意的是,如果我点击第一个md-select,第二个md-select也停止工作。

检查html,我可以看到,md-select有两个子元素:md-select-valuediv(md-select-menu-container)。点击并选择任何项目后,md-select-menu-container消失。也许它与这个问题有关,但第二个md-select仍然有一个md-select-menu-container,我无法打开它。

甚至尝试了一个简单的md-select没有任何选项,它仍然只在第一次点击时打开。

<md-select ng-model="vm.test">
</md-select>

任何人都知道为什么会这样吗?

我会把我的代码放在这里,但我认为这个bug在我项目的其他地方。因为如果我在角度材料的演示页面中尝试md-selects,它会按预期工作。

我的项目是在github,所以任何人都可以尝试:https://github.com/jradesenv/controle-projeto

更新:

我已经创建了一个带有nodejs express的简单服务器来托管角度应用程序,它在chrome和safari上完美运行。它似乎只是一个电子的错误。我注意到它不仅是md选择,而且md-dialogs和md-toast也有一些奇怪的延迟打开和关闭,只在电子中运行。

谢谢!

angularjs macos electron angularjs-material md-select
1个回答
0
投票

我使用角度材料1.1.5与此错误。当我将它降级到1.1.0时,我可以看到mdSelects按预期工作,但仍然有一些其他错误,如mdDialog关闭延迟,延迟更改标签等等。这是角度材料动画的错误。

对于有这个问题的人,我仍然使用角度材料1.1.5,但我只在Safari中禁用了所有动画,现在它按预期工作。

我正在使用此代码注入特定的css文件和bootstrap angularjs,并在特定的css文件中禁用所有动画:

function boot() {
    if (/Safari/.test(navigator.userAgent)) {
        var head = document.head,
        style = document.createElement('link');

        style.type = 'text/css';
        style.rel = 'stylesheet';
        style.href = 'styles/disable-animations.css';

        head.appendChild(style);
    }

    window.onload = function () {
        angular.bootstrap(document, ['app']);
    };
}

//styles/disable-animations.css文件

* {
transition: none!important;
transition-duration: 0ms!important;
transition-delay: 0ms!important;
}
© www.soinside.com 2019 - 2024. All rights reserved.