我遇到了通过原型(prototype)在运行时 View 模型修改到特定 html 元素的绑定(bind)问题。 我已向模型添加了一个数组,但应用绑定(bind)后 - 没有任何反应。添加的可观察量工作正常,但数组确实存在问题。
这是一个jsfiddle,代码为:click
var ViewModel = function() {
var self = this;
this.selectedItems = [{FullName: 'Mike'}]
};
var model = new ViewModel();
ko.applyBindings(model,document.getElementById('node'));
ko.cleanNode(document.getElementById('node'));
model.__proto__.items = [{FullName: 'Michael'}];
ko.applyBindings(model, document.getElementById('node'));
感谢您的建议。
最佳答案
问题是 ko.cleanNode 是 not working as you think it is 。它并没有像您想象的那样删除所有绑定(bind)。
我建议完全删除您的节点 div,然后克隆并重新添加它。如果您碰巧使用 jQuery,那么 jQuery 自然会让这一切变得简单。否则我会稍微备份一下并真正评估您是否需要将内容添加到 viewModel 的原型(prototype)中,然后重新绑定(bind)到您的 div。您确定 if
绑定(bind)不会执行您想要的操作吗?
此外,考虑使用 knockout 3 测试此代码 - 我相信您会收到有关多次应用绑定(bind)的错误。
关于javascript - 绑定(bind)在运行时 View 模型中修改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21646134/