How can I use knockout's $parent/$root pseudovariables from inside a .computed() observable?
http://stackoverflow.com/questions/8640748/how-can-i-use-knockouts-parent-root-pseudovariables-from-inside-a-computed
by rniemeyer
HTML
<script src="http://knockoutjs.com/downloads/knockout-2.2.1.js"></script>
<ul data-bind="foreach: items">
<li data-bind="css: { selected: isSelected }">
<a href="#" data-bind="text: name, click: $root.selectedItem"></a>
</li>
</ul>
<hr/>
<div data-bind="text: ko.toJSON($root)"></div>
CSS
.selected { background-color: #ccc; }
JavaScript
var Item = function(name) {
this.name = ko.observable(name);
this.isSelected = ko.computed(function() {
return this === viewModel.selectedItem();
}, this);
};
var viewModel = {
selectedItem: ko.observable(),
items: ko.observableArray()
};
viewModel.items([
new Item("one"),
new Item("two"),
new Item("three")
]);
ko.applyBindings(viewModel);