如何找出,为什么DOM绑定呈现两次

时间:2017-07-14 14:13:08

标签: scala scala.js binding.scala

我得到了以下dom-binding:

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而且只会改变一次......

1 个答案:

答案 0 :(得分:1)

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

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

此外,println语句之后的好.bind(特别是如果您有多个语句)有助于了解正在发生的事情。