如何使用KnockoutJS将字典集合绑定到选择列表。
如果我的“目的地”字典在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"
发布于 2011-09-13 21:28:32
通常,在处理字典时,您需要将其映射到包含具有键/值属性的对象的数组。
应该是这样的:
function mapDictionaryToArray(dictionary) {
var result = [];
for (var key in dictionary) {
if (dictionary.hasOwnProperty(key)) {
result.push({ key: key, value: dictionary[key] });
}
}
return result;
}
发布于 2012-01-12 07:28:14
我知道这个问题已经得到了回答,但我想我应该分享一个更全面的解决方案。
https://github.com/jamesfoster/knockout.observableDictionary
下面是一个演示它的jsfiddle
希望其他人会发现这很有用。
发布于 2016-08-16 08:13:33
如果您正在创建服务器API,则更简单的选择是将字典转换为服务器上的数组并返回该数组:
Dictionary<string, string> myDict = ... ;
return myDict.toArray(); // returns KeyValuePair<string, string>[]
现在,您可以轻松地在knockout中绑定数组...
<select class="form-control"
data-bind="options: opts, optionsText: 'Value', optionsValue: 'Key', optionsCaption: 'Show All', value: filter.myVal">
</select>
https://stackoverflow.com/questions/7400387
复制相似问题