javascript - KnockoutJS IF 绑定(bind) - 保留 DOM

标签 javascript jquery knockout.js data-binding

如果条件为 falseif 绑定(bind)会删除 DOM 并停止执行内部 data-bind 属性。

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

最佳答案

我提出了以下解决方案,该解决方案基本上延迟了 knockout 绑定(bind)应用程序,直到满足条件为止。

当条件变为false时,它不会删除绑定(bind),但在我的情况下这不是必需的。

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

关于javascript - KnockoutJS IF 绑定(bind) - 保留 DOM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33141354/

相关文章:

javascript - 谷歌图表 API : Show Data Point Values in Line Chart

javascript - 在 Phaser 中以相等尺寸制作 Sprite 表动画

javascript - 未捕获的类型错误 : Object [object Object] has no method 'colorpicker'

javascript - Gridster 在 beforeRemove Knockout 回调中阻止 li 节点

asp.net - Knockout.js - 似乎没有正确绑定(bind),不明白为什么

asp.net-mvc - 使用 asp.net mvc 3 和 knockoutjs 发布 viewModel 并上传文件

javascript - HTML - 用视频替换 div(图像和按钮)(仅当我按下按钮时)

javascript - AngularJS x-可编辑: Accept numeric input only

javascript - 单独进入那个div时显示<div>

jquery - 刷新或重新加载数据表