Jednokierunkowe wiązanie dla nazw + pole wyboru działa dobrze, ale początkowo nie działa dla przycisku radiowego employeeTypeA, chociaż jego wartość jest prawdziwa w viewmodelu, który html pokazuje przycisk radiowy nie jest ustawiony, dlaczego?nokaut nie ustawia początkowej wartości prawdziwej na przycisku radiowym.
<script type="text/javascript">
$(function()
{
var PersonViewModel = function()
{
this.firstName = ko.observable('Lisa');
this.lastName = ko.observable('T');
this.isCustomer = ko.observable(true);
this.employeeTypeA = ko.observable(true);
this.employeeTypeB = ko.observable(false);
};
var personViewModel = new PersonViewModel();
ko.applyBindings(personViewModel, $('data').get(0));
});
</script>
<div id="data">
<span data-bind="text: firstName"></span>
<span data-bind="text: lastName"></span>
<input type="checkbox" data-bind="checked: isCustomer" title="Is a customer" />
<input name="x" type="radio" data-bind="checked: employeeTypeA" title="Employee type A" />
<input name="x" type="radio" data-bind="checked: employeeTypeB" title="Employee type B" />
</div>
Sprawdziłem witrynę knockoutJS i spojrzał na tutorialu: wantsSpam: ko.observable (prawda), ale nie widzę, że wantsSpam jest związana z właściwością widoczności ... nie przycisk radiowy bezpośrednio . Jak wiesz o ASP.NET MVC byłoby lepszym pomysłem, aby rozważyć ten Boolean do String 'Converter' w viewmodel po stronie serwera, cokolwiek to wygląda ?! – Elisabeth
Po umieszczeniu ostatniego bloku kodu w pliku HTML mojego studia wizualnego otrzymuję 2 błędy/ostrzeżenia: podejrzane użycie tego operatora i nie wszystkie ścieżki kodu zwracają wartość. – Elisabeth
Mam też inne pytanie: dlaczego to zrobiłeś: "this.employeeTypeA()", a nie "this.employeeTypeA". Jak daleko moja wiedza dla początkujących javascript idzie employeeType jest właściwością ALE powołujesz się jak funkcja? To nie jest krytyka tylko ciekawe pytanie :) – Elisabeth