djmaze 2021-08-10 15:00:49 +02:00
parent 4cb88b408c
commit 3a32a09f2a
8 changed files with 96 additions and 116 deletions

View file

@ -393,13 +393,12 @@
? bindingKey => () => bindingsUpdater()[bindingKey]()
: bindingKey => bindings[bindingKey];
// Use of allBindings as a function is maintained for backwards compatibility, but its use is deprecated
function allBindings() {
return ko.utils.objectMap(bindingsUpdater ? bindingsUpdater() : bindings, valueAccessor => valueAccessor());
}
// Use of allBindings as a function is deprecated and removed
// The following is the 3.x allBindings API
allBindings['get'] = key => bindings[key] && getValueAccessor(key)();
allBindings['has'] = key => key in bindings;
var allBindings = {
'get': key => bindings[key] && getValueAccessor(key)(),
'has': key => key in bindings
};
if (ko.bindingEvent.childrenComplete in bindings) {
ko.bindingEvent.subscribe(node, ko.bindingEvent.childrenComplete, () => {

View file

@ -33,12 +33,6 @@ ko.bindingHandlers['event'] = {
event.preventDefault();
}
}
var bubble = allBindings.get(eventName + 'Bubble') !== false;
if (!bubble) {
event.cancelBubble = true;
event.stopPropagation();
}
});
}
});

View file

@ -4,7 +4,7 @@
function makeWithIfBinding(bindingKey, isWith, isNot) {
ko.bindingHandlers[bindingKey] = {
'init': (element, valueAccessor, allBindings, viewModel, bindingContext) => {
var didDisplayOnLastUpdate, savedNodes, contextOptions = {}, completeOnRender, needAsyncContext, renderOnEveryChange;
var didDisplayOnLastUpdate, savedNodes, contextOptions = {}, needAsyncContext, renderOnEveryChange;
if (isWith) {
var as = allBindings.get('as'), noChildContext = allBindings.get('noChildContext');
@ -12,8 +12,7 @@ function makeWithIfBinding(bindingKey, isWith, isNot) {
contextOptions = { 'as': as, 'noChildContext': noChildContext, 'exportDependencies': renderOnEveryChange };
}
completeOnRender = allBindings.get("completeOn") == "render";
needAsyncContext = completeOnRender || allBindings['has'](ko.bindingEvent.descendantsComplete);
needAsyncContext = allBindings['has'](ko.bindingEvent.descendantsComplete);
ko.computed(() => {
var value = ko.utils.unwrapObservable(valueAccessor()),
@ -57,9 +56,7 @@ function makeWithIfBinding(bindingKey, isWith, isNot) {
} else {
ko.virtualElements.emptyNode(element);
if (!completeOnRender) {
ko.bindingEvent.notify(element, ko.bindingEvent.childrenComplete);
}
ko.bindingEvent.notify(element, ko.bindingEvent.childrenComplete);
}
didDisplayOnLastUpdate = shouldDisplay;