一旦dom完成加载durandal,就调用一个函数

时间:2016-04-26 07:18:45

标签: javascript html dom durandal

我有一个函数,我在onchange事件中调用。我从该函数中获取值并在我视图中的其他位置显示该值。 这是我的代码

ViewModel代码

       DisplayDetails = function(data, event)
     {
    var id = event.target.id;
     var input = document.getElementById(id).value;
    alert(input);

    var div = document.getElementById('childcontainer');

        if(div == null)
        {
          return;
        }
        else
        {
          div.innerHTML = input.value;

        }


}

查看代码

<input  class="form-control" name="FName" type="text" id="FName" placeholder="First Name"  data-bind=" value: FName , event: { keyup: blockSpecialCharAndNumeric }, event: { change: DisplayDetails }"  >

我的函数被调用并且我得到了值但是在显示时我得到 div = null ,因为我的函数在dom完成加载之前被调用。我知道在durandal中我们有 composition.addBindingHandler 。我浏览了文档,但不确定如何在我的场景中使用它。感谢您的任何建议

1 个答案:

答案 0 :(得分:0)

Durandal功能lifecycle callbacks,在视图模型的生命周期的各个点调用,包括视图组成DOM的点。

尝试实施 compositionComplete 并访问您的&#34; childcontainer&#34;来自那里的元素。此时,您的元素将成为DOM的一部分。您可能希望修改事件处理程序,使其仅在 compositionComplete 之后执行。