我在页面上有非常复杂的标记。所以在它的某些区域我需要主模型,以在单击某个元素时显示其子对象。子对象也是复杂对象,因此为了向它展示一个属性,我使用自定义控件和单独的 applyBinding 调用。child 的一些属性是简单的属性,所以我直接显示它们。这是这部分的简化标记:
ko.bindingHandlers.stopBinding = {
init: function() {
return { controlsDescendantBindings: true };
}
};
<div id="shell" data-bind="with:details, visible:isVisible">
<h2 data-bind="text: $root.header"></h2>
<div data-bind="stopBinding: true" style="block;clear:both">
<div id="profile">
first name:<input data-bind="value: first" />
last name:<input data-bind="value: last" />
</div>
</div>
</div>
当 isVisible 最初为真时 - 一切都按预期工作。当它稍后在某处设置为 true 时 - 内部绑定不起作用。任何想法为什么会发生这种情况?这是小提琴:http: //jsfiddle.net/yauhen/NNMLh/