【发布时间】:2014-02-24 07:18:27
【问题描述】:
我有一个 html 可编辑字段的自定义绑定..
我现在将其更改为使用另一个自定义绑定 (HtmlValue),因为 EditableText 在更新值时出错(两个自定义绑定都包含在 jsfiddle 中)。
有人知道如何解决这个问题吗?
这是不更新值的代码:
ko.bindingHandlers.htmlValue = {
init: function (element, valueAccessor, allBindingsAccessor) {
ko.utils.registerEventHandler(element, "keyup", function () {
var modelValue = valueAccessor();
var elementValue = element.innerHTML;
if (ko.isWriteableObservable(modelValue)) {
modelValue(elementValue);
}
else { //handle non-observable one-way binding
var allBindings = allBindingsAccessor();
if (allBindings['_ko_property_writers'] && allBindings['_ko_property_writers'].htmlValue) allBindings['_ko_property_writers'].htmlValue(elementValue);
}
}
)
},
update: function (element, valueAccessor) {
var value = ko.utils.unwrapObservable(valueAccessor()) || "";
if (element.innerHTML !== value) {
element.innerHTML = value;
}
}
};
您可以在这里试用:http://jsfiddle.net/DMf8r/
【问题讨论】:
标签: javascript jquery knockout.js