1

我得到了以下dom绑定:

object Modals {

  val modals = Var[Modal](null)

  def show(modal: Modal) = modals.value = modal
  def hide(modal: Modal) = modals.value = null

  @dom
  def apply() = {
    if (modals.bind != null) {
      <!-- Some static HTMLElements -->
      ... This is called twice ...
    }
  }
}

虽然 show-Method 只调用了一次(我已经用调试输出仔细检查了它),但元素被渲染了两次,所以我收到了 HTMLElements 不能两次插入 DOM 的错误消息。

找出最好的方法是什么,为什么绑定会被重新计算两次?我不知道如何调试这个......对我来说,它只取决于一个Var,而且只改变一次......

4

1 回答 1

1

打印堆栈跟踪可能有助于跟踪源,例如您可以将以下代码放在.bind语句下

new RuntimeException("...").getStackTrace.take(10).map(println)

此外,良好的旧println.bind陈述(特别是如果你有多个)有助于理解正在发生的事情。

于 2017-07-17T18:19:30.013 回答