2017-09-19 4 views
10

Ich verwende Angularjs (1.x) und Angular-Material in einer Elektronen-App. Ich habe zwei md-select s in einer Ansicht, und wenn ich versuche, es in Windows zu verwenden, funktioniert alles ok. Aber wenn ich es in OS X verwende, stoppt die md-select nach dem ersten Klick. Ich klicke darauf und es öffnet sich die Liste der Objekte, aber wenn ich erneut auf md-select klicke, wird die Objektliste nicht mehr angezeigt. Bemerkenswert, dass, wenn ich in die erste md-select klicke, die zweite md-select aufhört zu arbeiten.md-select funktioniert nur beim ersten Klick auf OS X

Untersuchen von HTML, kann ich sehen, dass md-select hat zwei Kinder Elemente: md-select-value und div(md-select-menu-container). Nachdem ich ein Element angeklickt und ausgewählt habe, verschwindet die md-select-menu-container. Vielleicht ist es auf das Problem bezogen, aber die zweite md-select hat immer noch eine md-select-menu-container und ich kann es nicht öffnen.

Selbst versucht eine einfache md-select ohne Optionen und es öffnet sich immer noch nur auf den ersten Klick.

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

Jeder hat eine Idee, warum das passiert?

Ich würde meinen Code hier, aber ich denke, der Fehler ist woanders in meinem Projekt. Denn wenn ich die md-select s in der Demo-Seite des eckigen Materials versuche, funktioniert es wie erwartet.

Mein Projekt ist in Github, so dass jeder es versuchen: https://github.com/jradesenv/controle-projeto

UPDATE:

ich einen einfachen Server mit NodeJS erstellt haben drücken die Winkel App Gastgeber, und es läuft perfekt auf Chrom und Safari. Es scheint ein Fehler nur mit Elektronen zu sein. Mir ist aufgefallen, dass es nicht nur die md-selects, sondern auch die md-dialogs und md-toast haben eine seltsame Verzögerung zu öffnen und zu schließen, nur in Elektron ausgeführt.

Danke!

+1

Ich nehme Version 2+ von angular. Angulares Material hat immer noch einige Fehler, daher lohnt es sich, diese auf Guthib zu überprüfen. Ich stelle vor, dass es einen Fehler in der Konsole gibt (auch verfügbar auf Elektron), der mehr Details über den Fehler geben sollte, den Sie sehen – Sam

+0

Im immer noch benutzend die angularjs Version als seine einzige ich habe etwas Fähigkeit zur Zeit und ich habe sehr wenig Zeit, um dieses Projekt zu machen. Ich habe die Konsole überprüft und selbst wenn ich mehrmals darauf klicke, wird keine Fehlermeldung angezeigt. Wenn ich html überprüfe, kann ich sehen, dass md-select vor dem ersten Klick ein div mit den options-Elementen hat.Das div verschwinden nach dem ersten Klick –

+0

Aktualisiert die Frage mit einigen Informationen der Elemente –

Antwort

0

Ich verwendete Winkelmaterial 1.1.5 mit diesem Fehler. Als ich es auf 1.1.0 herabgestuft habe, kann ich sehen, dass die mdSelects wie erwartet funktionieren, aber immer noch einige andere Erros wie Verzögerung in mdDialog schließen, Verzögerung, Tabulatoren usw. zu ändern. Es ist ein Bug mit Angular-Material-Animationen.

Für jeden mit diesem Problem, ich benutze noch Angular-Material 1.1.5, aber ich habe alle Animationen nur in Safari deaktiviert, und jetzt funktioniert es wie erwartet.

ich diesen Code bin mit einer bestimmten CSS-Datei und Bootstrap AngularJS zu injizieren, und in der spezifischen CSS-Datei deaktiviere ich alle Animationen:

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 Datei

* { 
transition: none!important; 
transition-duration: 0ms!important; 
transition-delay: 0ms!important; 
} 
Verwandte Themen