tutorial knockout example knockout.js

knockout.js - example - KnockoutJS-Enlace de datos a una colección de diccionarios



knockout js tutorial (3)

Normalmente, cuando se trata de un diccionario, deseará asignarlo a una matriz que contiene objetos con propiedades clave / valor.

Sería algo como:

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

Muestra aquí: http://jsfiddle.net/rniemeyer/7yDTJ/

¿Cómo uso KnockoutJS para enlazar una colección de diccionarios a una lista de selección?

Si mi diccionario de "Destinos" se ve así en JSON:

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

¿Cómo puedo enlazar esto a una lista de selección. Algo como esto:

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



Una opción más simple si está creando la API del servidor es simplemente convertir el diccionario a una matriz en el servidor y devolver la matriz:

Dictionary<string, string> myDict = ... ; return myDict.toArray(); // returns KeyValuePair<string, string>[]

Ahora puedes enlazar fácilmente la matriz en nocaut ...

<select class="form-control" data-bind="options: opts, optionsText: ''Value'', optionsValue: ''Key'', optionsCaption: ''Show All'', value: filter.myVal"> </select>