KnockoutJs 1.3 mapping issue
https://groups.google.com/d/topic/knockoutjs/SPrzcgddoY4/discussion
by rniemeyer
HTML
<script src="http://knockoutjs.com/downloads/knockout-2.2.1.js"></script>
<input data-bind="value: myValue()" />
<hr/>
<div data-bind="text: myValue()"></div>
<hr/>
Reads: <span data-bind="text: myValue.reads"></span><br/>
Writes: <span data-bind="text: myValue.writes"></span><br/>
JavaScript
function trackedObservable(initialValue) {
var _value = ko.observable(initialValue),
_reads = ko.observable(0),
_writes = ko.observable(0),
result = function() {
//don't want to depend on _reads. would not need to do this, if _reads was not observable
setTimeout(function() { _reads(_reads() + 1); }, 0);
return _value;
}
_value.subscribe(function() {
_writes(_writes() + 1);
});
result.reads = _reads;
result.writes = _writes;
return result;
}
var viewModel = {
myValue: trackedObservable("Bob")
};
ko.applyBindings(viewModel);