Как исправить красную метку, которая появляется при использовании binding.scala в intellij?

Я занимаюсь разработкой с помощью scalajs и binding.scala. Я использую IDE как Intellij. Однако при использовании макроса dom в Intellij появляется следующая красная метка. эта ошибка появляется, когда я использую значение атрибута id в элементе ввода в качестве макроса Какое решение?

Эта ошибка (иначе "не может разрешить символ что-либо") появляется, когда вы используете значение атрибута id элемента input как 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>
}

1 ответ

У меня на самом деле та же проблема. У меня есть 2 способа справиться с этим:

  1. Не обращайте внимания на эти исключения - так как они являются проблемой только в IntellIJ (он прекрасно компилируется).
  2. Например, используйте JQuery:

    import org.scalajs.jquery.jQuery 
    ..
    jQuery("#showCheckbox").value()
    

    Как только ваш идентификатор станет более динамичным - вам все равно понадобится что-то подобное (по крайней мере, это то, что я знаю;)) -> jQuery(s"#${elem.id}").value(),

Вы можете воспользоваться scalaJS Event прошел, может быть, что-то вроде:

oninput={ev: Event => name.value = ev.target.asInstanceOf[HTMLInputElement].value}

Другие вопросы по тегам