如果条件为if
,data-bind
绑定将删除DOM并停止执行内部false
属性。
即使条件为false
,是否可以保留DOM?我只想在条件为data-bind
时停止执行false
但我不希望因JQuery绑定等而删除任何DOM。
答案 0 :(得分:1)
我提出了以下解决方案,基本上延迟了敲除绑定应用程序直到满足条件。
当条件变为false
时,它不会删除绑定,但在我的情况下这不是必需的。
ko.bindingHandlers['applyWhen'] = {
init: function() {
return { controlsDescendantBindings: true };
},
update: function(element, valueAccessor, allBindings, model, bindingContext) {
if (!element.bindingApplied && Boolean(ko.unwrap(valueAccessor()))) {
element.bindingApplied = true;
ko.applyBindingsToDescendants(bindingContext, element);
}
}
};