更新链接到foreach的可观察数组将重绘forEach生成的所有DOM元素。如果不将可观察元素绑定到数组中对象的属性,是否有办法避免完全重绘DOM?
我显然想要重新绘制更新的特定元素,但是如果我有一个隐藏/可见元素,它会将其重置为默认值(如果它是JS onclick样式的片段)。
http://jsfiddle.net/OrganicCat/CjH87/6/
var SimpleListModel = function(items) {
this.items = ko.observableArray(items);
this.itemToAdd = ko.observable("");
this.openItem = function(data, event) {
$(event.target).next().toggle();
};
this.modifyList = function() {
var modifiedList = ["Cats", "Dogs", "Hedgehogs"];
this.items(modifiedList);
};
};
ko.applyBindings(new SimpleListModel(["Alpha", "Beta", "Gamma"]));
答案 0 :(得分:2)
您可能希望稍微查看一下您的架构。
MVVM意味着您的整个视图应绑定到您的viewModel。所以所有元素都由视图模型控制。
如果你尝试做一半半的方法,那么你会发现自己正在与MVVM模式作斗争。如果您需要控制属于foreach的元素的可见性,则需要控制可观察数组的可见性。
希望有所帮助。