如何解决在intellij中使用binding.scala时出现的红色标记?

时间:2019-01-01 15:05:21

标签: scala scala.js binding.scala

我正在使用scalajs和binding.scala进行开发。我正在使用IDE作为Intellij。但是,在Intellij中使用dom宏时,会出现以下红色标记。当我在输入元素中将id的属性值用作宏时,会出现此错误,怎么解决?

当您将输入元素的id属性值用作marco时,会出现此错误(又称“无法解析符号”)。

请参见下面的图片链接。

this is my code image.

 @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>
}

2 个答案:

答案 0 :(得分:1)

我实际上有同样的问题。我有两种处理方式:

  1. 忽略这些异常-因为它们只是IntellIJ中的一个问题 (编译就可以了)。
  2. 使用像这样的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}