Knockout nie aktualizuje observables po kliknięciu przycisku resetowania formularza.typ wejścia = resetowanie i nokautowanie
HTML:
<form>
<input type="text" data-bind="value: test" />
<input type="reset" value="reset" />
</form>
<p data-bind="text: test"></p>
JS:
function ViewModel() {
this.test = ko.observable("");
}
ko.applyBindings(new ViewModel());
Wyraźnie wydarzenie zmiana polu tekstowym nie jest zwolniony, jak widać z tego testu jQuery: http://jsfiddle.net/LK8sM/4/
Jak czy zmusilibyśmy wszystkie obserwowalne do tworzenia danych wejściowych do aktualizacji bez konieczności ręcznego określania ich, jeśli przycisk resetowania nie uruchamia zmian?
Łatwo będzie użyć jQuery do znalezienia wszystkich danych wejściowych w formularzu i wywołać zdarzenia zmiany, ale załóżmy, że mamy tylko kontrolowaną formę nokautu.
Czy jesteś przeciwny wprowadzeniu resetowania jako metody viewmodel? Jak podkreślasz, wydaje się, że jest to większy problem związany z "resetem", który nie wyzwala zmiany, co może być znaczącym problemem. – Tyrsius
Jeśli metoda w viewmodelu mogłaby zresetować wszystkie obserwowalne bez konieczności ręcznego ich wyświetlania, zadziałałaby. Ale naprawdę chciałbym zresetować obserwowalne tylko do wejść. – Fergal