Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

141
Visualizações
¿Cómo establecer el valor en las opciones de selección de objetos complejos usando knockout?

¿Cómo crear dos cuadros de selección a partir del objeto dado? Necesito crear dos cuadros de opciones de selección con el menú desplegable País y la Selección desplegable de Estado.

 const optionsList = ko.observableArray ([ { 'AD':{'name':'Andora'}, 'AE':{'name':"United Arab Emirates"}, 'AG':{'name':"Antigua & Barbuda"}, 'ES':{'name':"Spain", 'regions':{ "22": { "code": "A Coruсa", "name": "A Coruña" }, "23": { "code": "Alava", "name": "Alava" }, "24": { "code": "Albacete", "name": "Albacete" } "25": { "code": "Zaragoza", "name": "Zaragoza" } }}, 'AT':{'name':"Austria", 'regions':{ "95": { "code": "WI", "name": "Wien" }, "96": { "code": "NO", "name": "Niederösterreich" } }}, 'AU':{'name':"Australia", 'regions':{ "569": { "code": "ACT", "name": "Australian Capital Territory" }, "570": { "code": "NSW", "name": "New South Wales" }, "571": { "code": "VIC", "name": "Victoria" }, "572": { "code": "QLD", "name": "Queensland" } }} } ])

Quiero crear dos menús desplegables usando knockout JS.

  1. Lista de países
  2. Lista de regiones si el objeto contiene la lista de regiones en el objeto. (como España, Austria y Australia)

No estoy seguro de cómo crear dos cuadros de selección en knockout usando el objeto anterior.

Gracias por cualquier información útil.

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Puede definir regions calculadas que miren un país seleccionado y solo devuelvan sus regiones:

 const regions = ko.pureComputed( () => selectedCountry()?.regions ?? [] // can be null -^ ^^- if a country has no regions, // return an empty list );

Los datos que publicaste usan objetos donde esperaría matrices, por lo que es ligeramente diferente. Aquí hay un ejemplo ejecutable:

 const countries = Object.values(getData()); const selectedCountry = ko.observable(null); const regions = ko.pureComputed( () => Object.values( selectedCountry()?.regions ?? {} ) ); const selectedRegion = ko.observable(null); ko.applyBindings({ countries, selectedCountry, regions, selectedRegion }); function getData() { return { 'AD': { 'name': 'Andora' }, 'AE': { 'name': "United Arab Emirates" }, 'AG': { 'name': "Antigua & Barbuda" }, 'ES': { 'name': "Spain", 'regions': { "22": { "code": "A Coruсa", "name": "A Coruña" }, "23": { "code": "Alava", "name": "Alava" }, "24": { "code": "Albacete", "name": "Albacete" }, "25": { "code": "Zaragoza", "name": "Zaragoza" } } }, 'AT': { 'name': "Austria", 'regions': { "95": { "code": "WI", "name": "Wien" }, "96": { "code": "NO", "name": "Niederösterreich" } } }, 'AU': { 'name': "Australia", 'regions': { "569": { "code": "ACT", "name": "Australian Capital Territory" }, "570": { "code": "NSW", "name": "New South Wales" }, "571": { "code": "VIC", "name": "Victoria" }, "572": { "code": "QLD", "name": "Queensland" } } } } };
 <script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.2/knockout-min.js"></script> <select data-bind=" options: countries, value: selectedCountry, optionsText: 'name' "></select> <select data-bind=" options: regions, value: selectedRegion, optionsText: 'name', visible: regions().length "></select> <pre data-bind="text: JSON.stringify({ country: selectedCountry(), region: selectedRegion() }, null, 2)"></pre>

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda