说,我们有:
var model = {
parent: ko.obervable({
child: ko.observable('')
})
};
当我们致电model.parent(newParentValue)
时,嵌套的child
正在替换为新的child
。是否会导致child
的绑定从取代的{{1}}取消订阅并订阅新的绑定?
答案 0 :(得分:0)
我不确定我应该如何回答你的问题。对于大多数意图和目的,答案是“是”,即:视图将递归地反映变化。您可以在this fiddle中使用以下代码进行检查:
Child is currently:
<span data-bind="text: parent().child"></span>
<hr />
<button data-bind="click: setNewParent">Set New Parent With New Child</button>
使用以下JS:
var model = {
parent: ko.observable({
child: ko.observable((new Date()).toTimeString())
})
};
model.setNewParent = function() {
model.parent({
child: ko.observable((new Date()).toTimeString())
});
};
ko.applyBindings(model);
如果您点击按钮,则会设置新的父级,您会注意到视图也会更新孩子。
如果我的问题更加文字化,可能会有一些细节。例如,我不确切知道DOM元素会发生什么。我想新的孩子是为新孩子创造的,旧孩子可能会丢弃。无论如何,对于这些详细和文字问题,我建议直接查看the KO source。