5

Sono nuovo di knockout.js. Non ero in grado di associare i dati da API a elenco a discesa utilizzando knock out js.come associare dinamicamente i dati al menu a discesa utilizzando knockout.js?

mio JSON dei dati via api e discesa è:

[{ 
ContactID: 0, 
FirstName: "Aaa", 
LastName: "bbb", 
MobileNumber: null, 
StartDate: "0001-01-01T00:00:00", 
EndDate: "0001-01-01T00:00:00" 
}, 
{ 
ContactID: 0, 
FirstName: "Ccc", 
LastName: "ddd", 
MobileNumber: null, 
StartDate: "0001-01-01T00:00:00", 
EndDate: "0001-01-01T00:00:00" 
} 
] 
<select id="selectmenu1" name="" data-theme="c" data-bind="optionsCaption: 'Choose...'">  </select> 

Ho solo per legare nome, cognome, contactID a discesa e visualizzazione nome e cognome come testo e contactID è il campo del valore per l'elemento. Qualcuno potrebbe dare qualche suggerimento in merito?

+0

non vi resta che utilizzare http://knockoutjs.com/documentation/options-binding.html –

risposta

12

È necessario utilizzare il options binding, in cui è necessario specificare:

  • l'array di elementi nel options (vedi nel doc esempio 3)
  • è necessario impostare il optionsValue: 'ContactID' di avere il ContactID come il valore
  • è necessario specificare una funzione nel optionsText che costruisce i vostri testi selezionati (vedi nel doc Esempio 4)

Così la tua definitiva e vincolante sarà simile:

<select id="selectmenu1" name="" data-theme="c" 
    data-bind="options: contacts, 
      optionsValue: 'ContactID', 
      optionsText: function(i) { return i.FirstName + ' ' + i.LastName }, 
      optionsCaption: 'Choose...'">   
</select> 

Demo JSFiddle.

+0

Ciao nemesv, grazie per la risposta. ma sto ricevendo sopra i dati da WEBAPI .. ma hai codificato i valori. Ti prego, dimmi di creare la modal view in knock out js e associare i valori a dropdown –

+0

Esistono un sacco di articoli su come usare webapi o knockout: puoi iniziare con http://www.dotnetcurry.com/ShowArticle.aspx ? ID = 875. Ti ho aiutato con il tuo binding perché la tua domanda riguardava solo questo. Se hai ulteriori problemi concreti, poni loro domande diverse. – nemesv

+0

Ciao nemesv, grazie. ma non mostra "Scegli .." come testo predefinito in quel menu a discesa ??? Mostra solo mentre si fa clic su quell'opzione .. –