javascript - 如何使用 knockout 可观察变量删除 html 内部的 Html 元素

标签 javascript knockout.js

如何从 javascript 代码端使用 knockout js 清除元素的内部 html。

在js文件中:

var mustDestroy = ko.observable(false);

//some code later

mustDestroy(true);

在 html 中:

<div data-bind="some binding here to clear inside of div with related to mustDestroy">
    <p>some html here</p>
    <a href="foo">foo</a>
    <img src="foo" />
</div>

变成(动态):

<div>
</div>

我需要针对这个问题的 knockout 相关解决方案。不仅仅是 JavaScript。

最佳答案

您稍后会将可观察到的 knockout 改回来吗? if 或 ifnot 绑定(bind)非常适合删除 div 的内容。

<div data-bind="ifnot: mustDestroy">
    <p>some html here</p>
    <a href="foo">foo</a>
    <img src="foo" />
</div>

如果您希望在变量为 true 时 div 为空,则上述解决方案非常有效。

您还可以编写自己的绑定(bind):

ko.bindingHandlers.destroyOnTrue = {
    update: function(element, valueAccessor, allBindings, viewModel, bindingContext) {
        if (ko.utils.unwrapObservable(valueAccessor())) {
            ko.virtualElements.emptyNode(element);
        }
    }
}

关于javascript - 如何使用 knockout 可观察变量删除 html 内部的 Html 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21006263/

相关文章:

javascript - 组织结构图 - 树形、在线、动态、可折叠、图片 - 在 D3 中

javascript - 将多个选择选项的值添加到输入值

javascript - 使用 JS 动态添加 Flash 时 IE 6 7 8 的外部接口(interface)问题

javascript - 如何使这种简单的单向绑定(bind)与 knockout 发挥作用?

javascript - 将我的搜索过滤器链接到列表项 : knockout js

internet-explorer - Knockout JS 内联编辑无法捕获 Internet Explorer 中的 Enter 键

javascript - angular2-chartjs/chartjs-plugin-annotation 更新选项仅一次

javascript - 错误 : Template parse errors: Can't bind to 'options' since it isn't a known property of 'chart'

javascript - 对 optionsValue 和 value 的真正含义感到困惑

javascript - Knockoutjs 立即验证