JSFiddle - React, Tailwind, and code Playground
HTML
<script src="http://ajax.aspnetcdn.com/ajax/knockout/knockout-3.0.0.js"></script>
<script src="https://raw.github.com/SteveSanderson/knockout.mapping/master/build/output/knockout.mapping-latest.debug.js"></script>
<!-- ko foreach: Foo.Bar.Collection -->
<span data-bind="text: Price"></span>
*
<span data-bind="text: $root.Count"></span>
=
<span data-bind="text: Total"></span>
<br />
<!-- /ko -->
JavaScript
var mapping = {
'Collection': {
create: function(options) {
var model = ko.mapping.fromJS(options.data);
model.Total = ko.computed(function() {
var result = this.Price() * 10;
//var result = this.Price() * viewModel.Count(); // :(
return result;
}, model);
return model;
}
}
};
var json = {
Count: 10,
Foo: {
Bar: {
Collection: [
{ Price: 5 },
{ Price: 1 },
{ Price: 2 },
{ Price: 12 }
]
}
}
};
var viewModel = ko.mapping.fromJS(json, mapping);
ko.applyBindings(viewModel);