javascript - Knockout js -> 绑定(bind)到可编辑的 div 文本?

标签 javascript knockout.js dom-events

如何将可观察对象绑定(bind)到可编辑的 div 文本内容?

最佳答案

您将需要修改默认的“文本”绑定(bind),以便它能够将编辑后的 ​​div 的内容写回可观察对象。此任务的简单自定义绑定(bind)处理程序如下所示:

ko.bindingHandlers.editableText = {
    init: function(element, valueAccessor) {
        $(element).on('blur', function() {
            var observable = valueAccessor();
            observable( $(this).text() );
        });
    },
    update: function(element, valueAccessor) {
        var value = ko.utils.unwrapObservable(valueAccessor());
        $(element).text(value);
    }
};

但请注意,此示例代码需要 jQuery。

用法就这么简单:

<div contentEditable="true" data-bind="editableText: foo"></div>

这是一个示例(用 CoffeeScript 编写):http://jsfiddle.net/aBUEu/1/

关于javascript - Knockout js -> 绑定(bind)到可编辑的 div 文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11448367/

相关文章:

javascript - 在子挂载的子组件中访问父的 Ref

javascript - 我可以在创建时使用 () 调用函数文字吗?

javascript - 如何检索输入元素及其包围的跨度?

javascript - 导入具有构造函数的 Typescript 模块

javascript - 尝试使用 onclick 事件提交父表单,但不起作用

javascript - 修改数组对象中的键字符串

javascript - 自定义绑定(bind)后运行默认绑定(bind)

javascript - knockout.js - 二维数组绑定(bind)问题

javascript - Dojo FilteringSelect 仅触发一次 OnChange 事件

JavaScript 不必在 &lt;script&gt; 标签内?