我怎样才能绑定可观察到一个可编辑的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?