如何从传递给scalatags的事件处理程序中访问'this'元素?

时间:2015-06-13 14:33:22

标签: scala scala.js scalatags

我正在尝试从使用scalatags创建的事件处理程序中访问当前(this)元素的文本。这是我试过的:

val onChange = {(e: HTMLElement) =>
  number() = e.textContent.toInt
}: js.ThisFunction

input(`type`:="number", onchange := onChange).render

当我调试上面的代码时,没有任何内容传递给onChange函数。具体来说,如果我将它放入函数体js.Dynamic.global.alert(JSON.stringify(e)),它会打印{}。另外,我收到e.textContent为空的错误。如何让它传递到javascript this元素?

1 个答案:

答案 0 :(得分:2)

我对scala.js gitter做了一些澄清,事实证明你可以从闭包中访问元素,如下所示:

val inputElem = input(`type`:="number").render
inputElem.onchange = {(e: Event) =>
  number() = inputElem.value.toInt
}