2016-04-06 7 views
2

val x = $(selectState).find("option").each((y: Element) => y)を使用してオプションを反復しようとしています。ただし、コンパイル時にエラーが発生します。"find"、 "each"メソッドが型不一致エラーを投げる

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

どのjQueryファサードを使用していますか、どのバージョンですか? – gzm0

+0

jquery-facadeで提起した問題に基づいて、私はそれを使用していると思います。それは奇妙です - なぜ私はそれぞれの呼び出しがコンパイルされていないのか分かりません。私は今日それを調べて、何が起きているのか理解できるかどうかを見てみよう。 ( '|'を使うとScala関数が暗黙的にJavaScriptに変換されないことがあります。この場合、 'each 'のファサードを書き直す必要があります) –

+0

jquery-facadeバージョン1.0- RC2 – Bhagyashree

答えて

1

これは正式な答えです:うん、それはjquery-facadeのバグでした。それを指摘してくれてありがとう!

私が疑ったように、|型の演算子は、コンパイラが自動的にScala関数をJavaScriptにキャストする機能を妨害していました。したがって、(y: Element) => y(Scala関数)をJavaScript js.Function0 [Element、Any]に変換できることは理解できませんでした。

私はeachを2つの別々のオーバーロードに分割しました。それぞれのバージョンごとに1つずつあり、それは必要に応じて動作するようです。 jquery-facade 1.0-RC3に更新してください。あなたのためにうまくいくはずです。

+0

作業中です。どうもありがとう。十分な担当者がいれば、私はそれを受け入れたものとしてマークします。再度、感謝します。 – Bhagyashree

関連する問題