मैं एसी कस्टम बाइंडिंग का उपयोग करके एक अधिसूचना डीआईवी दिखाने की कोशिश कर रहा हूं, जबकि उस डीवी के सीएसएस और एचटीएमएल को 2 अवलोकनों के माध्यम से समायोजित करता हूं।नॉकआउटजेएस कस्टम बाइंडिंग फायरिंग कई बार
समस्या जब मैं उन 2 observables का मूल्य बदल, यह भी कस्टम किसी कारण के लिए भी बाध्यकारी आग है।
टेम्पलेट:
<div class="alert top-alert" data-bind="fade: topMessageShow, css: topMessageType, html: topMessage"></div>
कस्टम हैंडलर:
ko.bindingHandlers.fade = {
update: function resolveFade(element, valueAccessor, allBindingsAccessor) {
if (ko.utils.unwrapObservable(valueAccessor())) {
$(element).hide().delay(300).fadeIn('slow');
} else {
// fade out the notification and reset it
$(element).fadeOut('slow', function() {
// reset those 2 observables that set class and HTML of the notification DIV
MyClass.topMessageType('');
MyClass.topMessage('');
});
}
}
};
ट्रिगर कोड:
MyClass.topMessageType('alert-info');
MyClass.topMessage(msg);
MyClass.topMessageShow(true);
JSFiddle:http://jsfiddle.net/UrxXF/1/
मुझे लगता है * आपकी समस्या अवलोकन के लिए अन्य बाइंडिंग के साथ है। वे सभी 'allBindingsAccessor' का हिस्सा बन जाते हैं और उन्हें बदलते हैं * * को आपके बाध्यकारी को पुनर्मूल्यांकन करने की आवश्यकता हो सकती है, इसलिए नॉकआउट इसे फिर से कॉल करता है। समस्या को ठीक करने के लिए आप लुप्त होने से पहले तत्व की दृश्यता और/या एनीमेशन स्थिति की जांच कर सकते हैं। –