5

Jestem nowicjuszką w knockout.js. Nie udało mi się powiązać danych z api do listy rozwijanej za pomocą funkcji knock out js.jak wiązać dane do rozwijania dynamicznie za pomocą knockout.js?

My Json dane z API i rozwijanym jest:

[{ 
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> 

prostu związać imię, nazwisko, ContactID do rozwijanej i Imię i nazwisko wyświetlacz jako tekst i ContactID jest pole wartość dla tego elementu. Czy ktoś mógłby podać kilka sugestii dotyczących tego?

+0

wystarczy użyć http://knockoutjs.com/documentation/options-binding.html –

Odpowiedz

12

Musisz użyć options binding, gdzie trzeba podać:

  • swoją tablicę elementów w options (patrz dok przykładu 3)
  • trzeba ustawić optionsValue: 'ContactID' mieć ContactID jako wartość
  • trzeba określić funkcję w optionsText która buduje swoje wybierać teksty (patrz dok przykładu 4)

tak Twój końcowy wiążący będzie wyglądać następująco:

<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

Hi nemesv, dzięki za odpowiedź. ale otrzymuję powyżej danych z WEBAPI .. ale ciężko zakodowane wartości. Proszę powiedz mi, aby utworzyć modalność widoku w knock-out js i związać wartości z rozwijanym liście. –

+0

Istnieje wiele artykułów na temat korzystania z webapi lub nokautu: możesz zacząć od http://www.dotnetcurry.com/ShowArticle.aspx ? ID = 875. Pomogłem ci z twoim wiązaniem, ponieważ twoje pytanie dotyczyło tylko tego. Jeśli masz dalsze konkretne problemy, zadaj je w różnych pytaniach. – nemesv

+0

Cześć nemesv, dziękuję. ale nie pokazuje "Wybierz ..." jako domyślny tekst w tym liście rozwijanej ??? Wyświetla się tylko podczas klikania tej opcji .. –

Powiązane problemy