Anstatt die Javascript-Bibliothek zu ändern, man bedenkt, könnte es in eine Gewohnheit Knockout Bindung Verpackung. Möglicherweise müssen Sie ohnehin bereits eine benutzerdefinierte Bindung für Ihre Bibliothek verwenden, insbesondere wenn Sie foreach
Bindungen verwenden, die Elemente dynamisch generieren/zerstören.
Sobald Sie die benutzerdefinierte Bindung haben, haben Sie einen sehr bequemen Ort, um 'Änderung' aus zu triggern.
ko.bindingHandlers.jQueryPluginFunctionCall = {
init: function (element, valueAccessor, allBindingsAccessor) {
// Apply jQuery plugin to textarea
$(element).jQueryPluginFunctionCall();
// Subscribe to the value binding of the textarea, and trigger the change event.
allBindingsAccessor().value.subscribe(function() {
$(element).trigger('change');
});
// Clean up jQuery plugin on dispose
ko.utils.domNodeDisposal.addDisposeCallback(element, function() {
// This will be called when the element is removed by Knockout or
// if some other part of your code calls ko.removeNode(element)
$(element).jQueryPluginFunctionCall('destroy');
});
}
}
Vielen Dank für Ihre Antwort. Ich bin mir dieser Lösung bewusst. Ich verwende jedoch eine separate Bibliothek, die ich zu diesem Zweck nicht ändern möchte. –
Schließlich ging ich mit dieser Lösung, denn ehrlich gesagt konnte ich keinen anderen Weg finden, um das gewünschte Ergebnis zu erreichen. Es beinhaltete die Änderung der Bibliothek, die ich nicht mag, aber es funktioniert jetzt und das ist das Wichtigste. –