我正在使用scalajs和binding.scala进行开发。我正在使用IDE作为Intellij。但是,在Intellij中使用dom宏时,会出现以下红色标记。当我在输入元素中将id的属性值用作宏时,会出现此错误,怎么解决?
当您将输入元素的id属性值用作marco时,会出现此错误(又称“无法解析符号”)。
请参见下面的图片链接。
@dom
def render: xml.Elem = {
val name: _root_.com.thoughtworks.binding.Binding.Var[_root_.java.lang.String] = Var.apply("Binding.scala")
val show: _root_.com.thoughtworks.binding.Binding.Var[Boolean] = Var.apply(false)
<div>
<p>
<label for="showCheckbox">
<input type="checkbox" id="showCheckbox" onchange={e: Event => show.value = showCheckbox.value }/>
<span> Say hello to <input id="nameInput" value={name.value} oninput={_: Event => name.value = nameInput.value}/></span>
</label>
</p>
{
if (show.bind) {
<p>
Hello, {name.bind}!
</p>
} else {
<!-- Don't show hello. -->
}
}
</div>
}
答案 0 :(得分:1)
我实际上有同样的问题。我有两种处理方式:
使用像这样的JQuery:
import org.scalajs.jquery.jQuery
..
jQuery("#showCheckbox").value()
一旦您的ID变得更加动态-无论如何,您都将需要类似的东西(至少这是我所知道的;))-> jQuery(s"#${elem.id}").value()
。
答案 1 :(得分:0)
您可以利用传入的scalaJS Event
的优势,例如:
oninput={ev: Event => name.value = ev.target.asInstanceOf[HTMLInputElement].value}