2016-04-26 61 views
0

我有一個函數,我在onchange事件中調用。我從該函數中獲取值並在我的視圖中的某個其他位置顯示該值。 這是我的代碼dom完成加載durandal後調用函數

視圖模型代碼

 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爲此。我瀏覽了文檔,但不知道如何在我的scenerio中使用它。感謝您的任何建議

回答

0

Durandal功能lifecycle callbacks,這是在您的視圖模型的生命週期的各個點上調用,包括您的視圖已被編入DOM的點。

嘗試實施compositionComplete並從那裏訪問您的「childcontainer」元素。在這個時候,你的元素將成爲DOM的一部分。您可能需要修改您的事件處理程序,以便它僅在組合完成後執行。

相關問題