KnockoutJS IF绑定 - 保留DOM

时间:2015-10-15 06:26:34

标签: javascript jquery knockout.js data-binding

如果条件为ifdata-bind绑定将删除DOM并停止执行内部false属性。

即使条件为false,是否可以保留DOM?我只想在条件为data-bind时停止执行false但我不希望因JQuery绑定等而删除任何DOM。

1 个答案:

答案 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);
    }
  }
};