淘汰赛JS - >绑定到可编辑的文本的div?(Knockout js -> Bind to

2019-06-26 05:33发布

我怎样才能绑定可观察到一个可编辑的DIV文本内容?

Answer 1:

您将需要修改默认的“文本”的结合,使其能够在编辑div的内容写回观测。 简单的自定义此任务可以像这样绑定处理程序:

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/



Answer 2:

你不能这样做,默认情况下,因为在可编辑的div更改文本不会提高,将更新您的模型中的价值的任何事件。

您将需要一个自定义此绑定。 你可以在这里读到它: http://knockoutjs.com/documentation/custom-bindings.html



文章来源: Knockout js -> Bind to editable div text?