KnockoutJS - 数据绑定到字典集合

时间:2011-09-13 10:30:25

标签: knockout.js

如何使用KnockoutJS将字典集合绑定到选择列表。

如果我的“Destinations”字典在JSON中显示如下:

{"Europe":"Europe incl Egypt, Turkey & Tunisia","ANZO":"Australia & New Zealand","WorldwideUSA":"Worldwide (incl USA & Canada)"}

如何将其绑定到选择列表。像这样:

data_bind="value: Destination, options: Destinations.Value, optionsText: Destinations.Key"

2 个答案:

答案 0 :(得分:26)

通常,在处理字典时,您需要将其映射到包含具有键/值属性的对象的数组。

会是这样的:

function mapDictionaryToArray(dictionary) {
    var result = [];
    for (var key in dictionary) {
        if (dictionary.hasOwnProperty(key)) {
            result.push({ key: key, value: dictionary[key] }); 
        }  
    }

    return result;
}

此处示例:http://jsfiddle.net/rniemeyer/7yDTJ/

答案 1 :(得分:13)

我知道这已经得到了回答,但我想我会分享一个更全面的解决方案。

https://github.com/jamesfoster/knockout.observableDictionary

这是一个演示它的jsfiddle

http://jsfiddle.net/HLnGs/

希望其他人能找到这个有用的