Binding.scala с использованием UI-семантики: applyDynamic не поддерживает передачу параметра vararg

Я хочу отобразить всплывающую подсказку для элемента, например:

  <div class="ui item"
         data:data-tooltip="Choose the adapter job"
         data:data-position="bottom right">
      <select id="jobConfigSelect"
              class="ui compact dropdown"
              onchange={_: Event =>
                changeSelectedJobConfig(jobConfigSelect.value))}>
        {Constants(jobConfigs.configs.values.map(selJobConfigOption).toSeq: _*)
        .map(_.bind)}
      </select>
    </div>

Это дает эту странную ошибку:

Без этих 2 строк:

data:data-tooltip="Choose the adapter job"
data:data-position="bottom right"

код работает отлично.

2 ответа

Решение

Это похоже на ошибку компилятора Scala, которая была исправлена ​​в последней версии Scala 2.12.

Он компилируется в Scala 2.12 и вызывает ошибку в Scala 2.11.

После некоторых "попыток" я нашел это решение:

Вы не можете иметь data:data-tooltipатрибут в том же методе, что и у вас есть Constants построить. Таким образом, вы должны разделить их:

    ...
    <div class="ui item"
         data:data-tooltip="Choose the adapter job"
         data:data-position="bottom right">
      {selJobConfigSelect(jobConfigs).bind}
    </div>
  }

  @dom
  private def selJobConfigSelect(jobConfigs: JobConfigs) = {
    <select id="jobConfigSelect"
            class="ui compact dropdown"
            onchange={_: Event =>
              changeSelectedJobConfig(jobConfigs.fromIdent(s"${jobConfigSelect.value}"))}>
      {Constants(jobConfigs.configs.values.map(selJobConfigOption).toSeq: _*)
      .map(_.bind)}
    </select>
  }

Что я не понял, так это: почему это так?

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