Ich bin mit Bootstrap-Datepicker und Bindung das ausgewählte Datum mit knockoutjs in einer asp.net Mvc-AnwendungBootstrap Datepicker Bindung in Knockoutjs
Knockout Bindung:
ko.bindingHandlers.datepicker = {
init: function(element, valueAccessor, allBindingsAccessor) {
//initialize datepicker with some optional options
var options = allBindingsAccessor().datepickerOptions || {
useCurrent: false,
format: 'mm/dd/yyyy'
};
$(element).datepicker(options);
//when a user changes the date, update the view model
ko.utils.registerEventHandler(element, "changeDate", function(event) {
var value = valueAccessor();
if (ko.isObservable(value)) {
value(event.date);
}
});
},
update: function(element, valueAccessor) {
var widget = $(element).data("datepicker");
//when the view model is updated, update the widget
if (widget) {
widget.date = ko.utils.unwrapObservable(valueAccessor());
widget.setValue();
}
}
};
var model = {
StartDate: ko.observable(),
EndDate: ko.observable()
};
ko.applyBindings(model, $("#target")[0]);
Gerade jetzt, Nach dem Ausfüllen des Formulars wird das Formular unter Verwendung von Ajax-Post an den Server gesendet.
Bei der Rückkehr möchte ich die ausgewählten Start- und Enddaten Eingabefelder löschen.
Ich habe dies versucht:
self.StartDate(null);
self.EndDate(null);
dies die Eigenschaften löscht, aber der Eingang noch immer die ausgewählten Daten. Gibt es eine Möglichkeit, nicht nur die Eigenschaften, sondern auch die Eingabewerte zu löschen?
Gibt es in der knockout-Funktion für die benutzerdefinierte Bindungsinitialisierung auch eine Möglichkeit, beide Datumseingaben zu verknüpfen, um einen Bereich zu erstellen, wie die Demo here? Wenn in der Demo das Optionsfeld Bereich ausgewählt ist, funktionieren die Felder jedoch als Bereich.
In Ihrer Update-Methode müssen Sie nur den Wert der Eingabe auf den Wert der unverpackten Observable setzen. So z.B. Definiere den Wert 'var value = ko.utils.unwrapObservable (valueAccessor());' Dann die letzte Zeile in deinem Update, du könntest '$ (element) .val (value);' um den Eingabewert zu ändern, den die Datepickerkomponente gibt (Observable wird normal geändert, also keine Sorgen hier) – kasperoo