2

我首先使用 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!

如果有人可以对此行为提出解释,将不胜感激。我是这些技术的新手,没有任何线索。我什至无法真正解释我所说的“损坏”是什么意思,除了某些绑定无法显示内容(我确实验证了数据仍在绑定模型属性中)。

此外,这可能会帮助其他人对其绑定有莫名其妙的“腐败”。

4

1 回答 1

1

如果你使用document.getElementById不要在它前面加上哈希。带有散列的表单是选择器语法。getElementById期望 id 名称,因此对于您的版本,它返回 null。正确的形式是:

ko.applyBindings(appViewModel,document.getElementById('myAccountForm'));
于 2013-02-07T20:11:31.243 回答