I'm trying to allow editing items in an array of strings like so:
http://jsfiddle.net/adamfraser/sr4Fg/44/
html
<h4> edit </h4>
<ul class="list" data-bind="foreach:titles">
<li class="title" data-bind="editableHTML:$data" contenteditable="true"></li>
</ul>
<h4> view </h4>
<ul class="" data-bind="foreach: titles">
<li class="title" data-bind="text:$data"></li>
</ul>
js
ko.bindingHandlers.editableHTML = {
init: function(element, valueAccessor) {
var $element = $(element);
var initialValue = ko.utils.unwrapObservable(valueAccessor());
$element.html(initialValue);
$element.on('keyup', function() {
observable = valueAccessor();
observable($element.html());
});
}
};
viewModel= {
titles : ko.observableArray([
"one", "two"
])
};
ko.applyBindings(viewModel);
While the custom editableHTML
handler works for regular (non-array) observables, it's not cutting it for observableArrays. Anyone know why? I'm still new to KO.