Как исправить красную метку, которая появляется при использовании 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 способа справиться с этим:
- Не обращайте внимания на эти исключения - так как они являются проблемой только в IntellIJ (он прекрасно компилируется).
Например, используйте 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}