md-select 仅在第一次点击 OS X 时有效

md-select works only in first click on OS X

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

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

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

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

有人知道为什么会这样吗?

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

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

更新:

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

谢谢!

我在使用 angular material 1.1.5 时遇到了这个错误。当我将它降级到 1.1.0 时,我可以看到 mdSelects 按预期工作,但仍然有一些其他错误,如 mdDialog 关闭延迟、更改选项卡延迟等。这是 angular-[=28= 的错误] 动画。

对于遇到此问题的任何人,我仍在使用 angular-material 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;
}