首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >KnockoutJS -字典集合的数据库绑定

KnockoutJS -字典集合的数据库绑定
EN

Stack Overflow用户
提问于 2011-09-13 18:30:25
回答 3查看 15.7K关注 0票数 16

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

如果我的“目的地”字典在JSON中如下所示:

代码语言:javascript
复制
{"Europe":"Europe incl Egypt, Turkey & Tunisia","ANZO":"Australia & New Zealand","WorldwideUSA":"Worldwide (incl USA & Canada)"}

如何将其绑定到选择列表。如下所示:

代码语言:javascript
复制
data_bind="value: Destination, options: Destinations.Value, optionsText: Destinations.Key"
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-09-13 21:28:32

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

应该是这样的:

代码语言:javascript
复制
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/

票数 26
EN

Stack Overflow用户

发布于 2012-01-12 07:28:14

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

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

下面是一个演示它的jsfiddle

http://jsfiddle.net/HLnGs/

希望其他人会发现这很有用。

票数 13
EN

Stack Overflow用户

发布于 2016-08-16 08:13:33

如果您正在创建服务器API,则更简单的选择是将字典转换为服务器上的数组并返回该数组:

代码语言:javascript
复制
Dictionary<string, string> myDict = ... ;
return myDict.toArray();  // returns KeyValuePair<string, string>[]

现在,您可以轻松地在knockout中绑定数组...

代码语言:javascript
复制
<select class="form-control" 
  data-bind="options: opts, optionsText: 'Value', optionsValue: 'Key', optionsCaption: 'Show All', value: filter.myVal">
</select>
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7400387

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档