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);


});