2017-07-14 8 views
1

をレンダリングされるバインディング私が得た次のDOMバインディング:ショーメソッドは、一度だけ呼び出され見つけるためにどのように、なぜ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 ... 
    } 
    } 
} 

が(私は二重のデバッグ出力でそれを確認しています)要素が2回レンダリングされるので、HTMLElementsをDOMに2回挿入できないというエラーメッセージが表示されます。

バインディングが2回再計算される理由を調べる最も良い方法は何ですか?私はこれをデバッグする方法がわかりません...私にとってはそれは1つにしか依存しませんVarこれは一度だけ変更されます...

答えて

1

スタックトレースを印刷すると、次のコードを配置できます.bind声明も

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

の下で、古き良きprintln.bind後のステートメントは、(あなたが複数ある場合は特に)何が起こっているか理解するのに役立ちます。

関連する問題