ko.applyBindings
принимает второй параметр, который является элементом DOM для использования в качестве корня.
Это позволит вам сделать что-то вроде:
<div id="one">
<input data-bind="value: name" />
</div>
<div id="two">
<input data-bind="value: name" />
</div>
<script type="text/javascript">
var viewModelA = {
name: ko.observable("Bob")
};
var viewModelB = {
name: ko.observable("Ted")
};
ko.applyBindings(viewModelA, document.getElementById("one"));
ko.applyBindings(viewModelB, document.getElementById("two"));
</script>
Таким образом, вы можете использовать эту технику для привязки viewModel к динамическому контенту, который вы загружаете в свой диалог. В целом, вы просто должны быть осторожны, чтобы не вызывать applyBindings
несколько раз для одних и тех же элементов, поскольку вы получите несколько обработчиков событий.