Вызов функции после завершения загрузки 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.