这个文件过时了吗? http://www.scala-js.org/doc/calling-javascript.html
在intellij中似乎无法做到这一点:
import org.scalajs.dom.html
import org.scalajs.dom
import org.scalajs.dom.raw.HTMLElement
import scala.scalajs.js
import js.JSConverters._
import fr.iscpif.scaladget.d3._
import fr.iscpif.scaladget.mapping._
import scala.scalajs.js
import scala.scalajs.js.annotation.JSExport
import org.scalajs.jquery.jQuery
/**
* Created by IDEA on 31/10/15.
*/
@JSExport
object LearnD3 {
@JSExport
def main(div: html.Div): Unit = {
jQuery("#list > li").each((x, y) => y)
}
}
第一个dom.HTMLElement似乎不存在。有
org.scalajs.dom.raw.HTMLElement
,但是即使我导入也存在类型不匹配:最佳答案
您需要指定参数的类型。以下代码有效:
val x = jQuery("#list > li").each((i: js.Any, y: Element) => y)
您可能会注意到索引
i
的类型为Any
,通常您希望索引的类型为Int
。由于这种问题,jquery-facade诞生了:jQuery的类型更强的外观。我强烈推荐它。 jQuery Facade中的相同代码: import org.querki.jquery._
...
val x = $("#list > li").each((y: Element, i: Int) => y)
或者,如果不需要
i
索引: val x = $("#list > li").each((y: Element) => y)
或者您想推断
y
类型: val x = $("#list > li").foreach(y => y)