我正在尝试使用val x = $(selectState).find("option").each((y: Element) => y)
迭代选项。但是编译抛出以下错误。
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]]
我指的是堆栈溢出问题here。
答案 0 :(得分:1)
好的,正式回答:是的,这是jquery-facade中的一个错误。谢谢你指出来了!
我怀疑这个问题是|
类型的运算符干扰了编译器自动将Scala函数强制转换为JavaScript函数的能力。所以我不理解(y: Element) => y
(一个Scala函数)可以变成JavaScript js.Function0 [Element,Any]。
所以我将each
拆分为两个独立的重载,每个版本一个,并且看起来按照需要工作。请更新到jquery-facade 1.0-RC3,我认为它应该对你有用。