我有一个函数,我在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 。我浏览了文档,但不确定如何在我的场景中使用它。感谢您的任何建议
答案 0 :(得分:0)
Durandal功能lifecycle callbacks,在视图模型的生命周期的各个点调用,包括视图组成DOM的点。
尝试实施 compositionComplete 并访问您的&#34; childcontainer&#34;来自那里的元素。此时,您的元素将成为DOM的一部分。您可能希望修改事件处理程序,使其仅在 compositionComplete 之后执行。