के बजाय जावास्क्रिप्ट पुस्तकालय बदल रहा है, तो आप एक कस्टम नॉकआउट बाइंडिंग में लपेटकर सोच सकते हैं। वैसे भी आपको अपनी लाइब्रेरी के लिए कस्टम बाइंडिंग का उपयोग करने की आवश्यकता हो सकती है, खासकर यदि आप foreach
बाइंडिंग का उपयोग कर रहे हैं जो गतिशील रूप से तत्वों को उत्पन्न/नष्ट कर देते हैं।
एक बार जब आप कस्टम बंधन मिल गया है, तो आप से 'बदलें' को गति प्रदान करने के लिए एक बहुत ही सुविधाजनक जगह नहीं है।
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');
});
}
}
आपकी प्रतिक्रिया के लिए धन्यवाद। मुझे इस समाधान से अवगत है। हालांकि, मैं एक अलग पुस्तकालय का उपयोग कर रहा हूं जिसे मैं इस उद्देश्य के लिए संशोधित नहीं करना चाहता हूं। –
आखिर में मैं इस समाधान के साथ गया क्योंकि स्पष्ट रूप से मुझे वांछित परिणाम प्राप्त करने का कोई और तरीका नहीं मिला। इसमें लाइब्रेरी को संशोधित करना शामिल था जो मुझे पसंद नहीं है, लेकिन यह अब काम करता है और यह सबसे महत्वपूर्ण बात है। –