2016-04-06 10 views
2

Ich versuche, über Optionen mit val x = $(selectState).find("option").each((y: Element) => y) zu iterieren. Compilation wirft jedoch folgenden Fehler."find", "each" -Methode wirft Typenkonfliktfehler

type mismatch; 
found : org.scalajs.dom.Element => org.scalajs.dom.Element 
    (which expands to) org.scalajs.dom.raw.Element => org.scalajs.dom.raw.Element 
required: scala.scalajs.js.|[scala.scalajs.js.ThisFunction0[org.scalajs.dom.Element,Any],scala.scalajs.js.ThisFunction1[org.scalajs.dom.Element,Int,Any]] 
    (which expands to) scala.scalajs.js.|[scala.scalajs.js.ThisFunction0[org.scalajs.dom.raw.Element,Any],scala.scalajs.js.ThisFunction1[org.scalajs.dom.raw.Element,Int,Any]] 

Ich bezog sich auf Stapelüberlauf Frage here.

+0

Welche jQuery-Fassade verwenden Sie und welche Version? – gzm0

+0

Basierend auf dem Problem, das Sie in jQuery-Fassade aufgeworfen haben, nehme ich an, dass Sie das verwenden. Es ist seltsam - ich verstehe nicht, warum dieser Aufruf an 'each' nicht kompiliert wird. Ich werde versuchen, das heute zu untersuchen und zu sehen, ob ich herausfinden kann, was los ist. (Kann sein, dass die Verwendung von '|' verhindert, dass die Scala-Funktion implizit in eine JavaScript-Version konvertiert wird. In diesem Fall muss ich die Fassade für 'each' neu schreiben.) –

+0

Ich benutze jquery-facade Version 1.0- RC2 – Bhagyashree

Antwort

1

Okay, formell antworten: yep, das war ein Bug in jquery-Fassade. Danke für das Aufzeigen!

Das Problem, wie ich vermutete, war, dass der Operator | mit der Fähigkeit des Compilers stört, Scala-Funktionen automatisch zu JavaScript-Einsen zu konvertieren. Es war also nicht verständlich, dass (y: Element) => y (eine Scala-Funktion) in ein JavaScript js.Function0 [Element, Any] umgewandelt werden konnte.

Also habe ich each in zwei separate Überlastungen aufgeteilt, eine für jede Version, und das scheint wie gewünscht zu funktionieren. Bitte aktualisieren Sie auf Jquery-Fassade 1.0-RC3, und ich denke, es sollte für Sie arbeiten.

+0

Arbeiten. Danke vielmals. Ich werde es als akzeptiert markieren, sobald ich genug Wiederholungen habe. Danke noch einmal. – Bhagyashree

Verwandte Themen