Вызов функции после завершения загрузки Durandal

У меня есть функция, которую я вызываю на событии onchange. Я беру значение из этой функции и отображаю это значение в каком-то другом месте в моем представлении. Это мой код

ViewModel Code

       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 у нас есть состав.addBindingHandler для этого. Я просмотрел документацию, но не уверен, как использовать ее в моем сценарии. Спасибо за любой совет

1 ответ

Durandal имеет функции обратного вызова жизненного цикла, которые вызываются в различных точках жизненного цикла модели вашего представления, включая точку, в которой ваше представление было включено в DOM.

Попробуйте реализовать композицию ComComplete и получить доступ к элементу childcontainer оттуда. В этот момент ваш элемент станет частью DOM. Вы, вероятно, захотите изменить свой обработчик событий, чтобы он выполнялся только после композиции Complete.

Другие вопросы по тегам