我首先使用applyBindings()将我的模型应用于文档:
ko.applyBindings(appViewModel);
然后我附上一些动态内容:
$('#contentSection').append(myAccountTmpl);
然后我使用applyBindings将模型应用于新内容。如果我使用getElementById引用动态添加的节点,则文档上的绑定已损坏。如果我使用JQuery样式的引用,我没有问题:
ko.applyBindings(appViewModel,document.getElementById('#myAccountForm')); //corrupts other bindings
ko.applyBindings(appViewModel,$('#myAccountForm')[0]); //No Problems!
如果有人可以就此行为提出解释,我们将不胜感激。我是这些技术的新手,没有任何线索。我甚至无法解释我的意思和腐败"除了某些绑定未能显示内容(我确实验证数据仍然在绑定的模型属性中)。
此外,这可能有助于其他人有莫名的“腐败”。与他们的绑定。
答案 0 :(得分:1)
如果您使用document.getElementById
,请不要使用哈希作为前缀。带有哈希的表单是选择器语法。 getElementById
期望id名称,因此对于您的版本,它返回null。正确的形式是:
ko.applyBindings(appViewModel,document.getElementById('myAccountForm'));