http://stackoverflow.com/questions/7400387/knockoutjs-databind-to-a-dictionary-collection
http://stackoverflow.com/questions/7400387/knockoutjs-databind-to-a-dictionary-collection
by rniemeyer
HTML
<script src="http://knockoutjs.com/downloads/knockout-2.2.1.js"></script>
<select data-bind="options: destinations, optionsText: 'key', optionsValue: 'value', value: selectedDestination"></select>
<hr />
<div data-bind="text: selectedDestination"></div>
JavaScript
$(function() {
var destinationsFromServer = {"Europe":"Europe incl Egypt, Turkey & Tunisia","ANZO":"Australia & New Zealand","WorldwideUSA":"Worldwide (incl USA & Canada)"};
function mapDictionaryToArray(dictionary) {
var result = [];
for (var key in dictionary) {
if (dictionary.hasOwnProperty(key)) {
result.push({ key: key, value: dictionary[key] });
}
}
return result;
}
var viewModel = {
destinations: ko.observableArray(mapDictionaryToArray(destinationsFromServer)),
selectedDestination: ko.observable("Worldwide (incl USA & Canada)")
};
ko.applyBindings(viewModel);
});