Binding.scala 使用 UI-语义:applyDynamic 不支持传递可变参数

Binding.scala using UI-Semantics: applyDynamic does not support passing a vararg parameter

我想在元素上显示工具提示,例如:

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

这给出了这个奇怪的错误:

没有这两行:

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

代码运行完美。

经过一些 'trying' 我找到了这个解决方案:

您不能在具有 Constants 构造的同一方法中使用 data:data-tooltip 属性。所以你必须拆分它们:

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

我还没有弄明白的是:这是为什么?

看起来 a Scala compiler bug 已在最新的 Scala 2.12 中修复。

compiles in Scala 2.12, and causes error in Scala 2.11.