Ayrıca DIV'nin CSS ve HTML'yi 2 gözlenebilir üzerinden ayarlayarak, bir alıcı DIO'yu özel bağlantı kullanarak göstermeye çalışıyorum.KnockoutJS özel bağlama ateşi birden çok kez
sorun Ben bu 2 gözlenebilirlerin değerini değiştirdiğinizde, aynı zamanda nedense yanı bağlayıcı özel ateşler olmasıdır.
Şablon:
<div class="alert top-alert" data-bind="fade: topMessageShow, css: topMessageType, html: topMessage"></div>
Özel Handler:
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('');
});
}
}
};
Tetikleme Kodu:
MyClass.topMessageType('alert-info');
MyClass.topMessage(msg);
MyClass.topMessageShow(true);
JSFiddle:http://jsfiddle.net/UrxXF/1/
Ben * düşünüyorum * senin sorunun diğer bağlamaları gözlenebilir. Hepsi "allBindingsAccessor" un bir parçası haline gelir ve onları değiştirir * bağlamanızın yeniden değerlendirilmesini gerektirebilir, bu yüzden tekrar nakavt tekrar çağırır. Sorunu çözmek için, içeri girip çıkmadan önce öğenin görünürlüğünü ve/veya animasyon durumunu kontrol edebilirsiniz. –