【发布时间】:2018-10-05 14:23:19
【问题描述】:
在以下示例中实例化scala.scalajs.js.ThisFunction3 时遇到了一点问题(使用org.singlespaced.d3js)
val selection = myG.selectAll(".res")
.data[Resource]((r: Container, i: Int) => r.resources.toJSArray,
{(n: Node, r: Option[Resource], i:Int) => ""} // (*) this results in a type mismatch
: ThisFunction2[Node|js.Array[Resource],js.UndefOr[Resource], Int, String])
myG 是一个Selection[Container],Container 有一个List[Resource] 字段。
我尝试将标有 (*) 的行替换为以下代码:
{(n: js.Array[Resource], r: js.UndefOr[Resource], i:Int) => ""}
{(n: List[Resource], r: Option[Resource], i:Int) => ""}
到目前为止,我尝试的所有操作都导致类型不匹配错误。任何帮助将不胜感激。
编辑:
以下是数据函数的定义方式:
def data(): js.Array[Datum] = js.native
def data[NewDatum](data: js.Array[NewDatum]): Update[NewDatum] = js.native
def data[NewDatum](data: js.Array[NewDatum], key: js.ThisFunction2[dom.Node|js.Array[NewDatum],js.UndefOr[NewDatum], Int, String]): Update[NewDatum] = js.native
def data[NewDatum <: Datum](data: js.Array[NewDatum], key: js.Function2[Datum, Int, String]): Update[NewDatum] = js.native
def data[NewDatum](data: DatumFunction[js.Array[NewDatum]]): Update[NewDatum] = js.native
def data[NewDatum](data: DatumFunction[js.Array[NewDatum]], key: js.ThisFunction2[dom.Node|js.Array[NewDatum],js.UndefOr[NewDatum], Int, String]): Update[NewDatum] = js.native
【问题讨论】:
标签: javascript scala d3.js scala.js