KnockoutJS - observableArray and ko.mapping.fromJS
http://stackoverflow.com/questions/6637579/knockoutjs-observablearray-and-ko-mapping-fromjs
HTML
<script src="http://ajax.microsoft.com/ajax/jquery.templates/beta1/jquery.tmpl.min.js"></script>
<script src="http://cloud.github.com/downloads/SteveSanderson/knockout/knockout-1.3.0beta.js"></script>
<script src="https://raw.github.com/SteveSanderson/knockout.mapping/master/build/output/knockout.mapping-latest.js"></script>
<table>
<thead>
<tr>
<td></td>
<td>Name</td>
<td>Email Address</td>
<td>Active?</td>
<td>Created</td>
</tr>
</thead>
<tbody data-bind="template: { name: 'userTemplate', foreach: users }">
<script type="text/x-jquery-tmpl" id="userTemplate">
<tr>
<td class="quiet"><span data-bind="text: Id"></span></td>
<td><span data-bind="text: Name"></span></td>
<td><a data-bind="attr: { href: ('mailto:' + EmailAddress()) }"><span data-bind="text: EmailAddress"></span></a></td>
<td>
<a href="#"><span data-bind="text: IsActive"></span></a>
</td>
<td><span data-bind="text: CreatedDate"></span></td>
</tr>
</script>
</tbody>
</table>
JavaScript
var viewModel = {
users: ko.observableArray()
}
var userMapping = {
key: function(item) {
return ko.utils.unwrapObservable(item.Id);
}
}
// JSON call replaced with values
viewModel.users = ko.mapping.fromJSON('[{"Id":1,"Name":"Andrew","EmailAddress":"[email protected]","IsActive":true,"CreatedDate":"1 Dec 2011"}]');
ko.applyBindings(viewModel);